• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 403
  • Last Modified:

getline

I have a txt file with 4 lines


line1
line2
line3
line4



I want to use a loop to store each line into an element in an array

string line[10];
int n = 0;
while ( n < 5 )
{
  //  getline
  n = n + 1;
}

return 0;



what is the syntax to read whole N th line in the file?
0
Troudeloup
Asked:
Troudeloup
  • 5
  • 4
  • 4
9 Solutions
 
lucky_jamesCommented:
you can use a for loop and inside the loop use the following statement :
cin.getline (arr[loop_counter],256);



More about getline:
http://www.cplusplus.com/reference/iostream/istream/getline.html

Let me know if you have any doubts.
0
 
TroudeloupAuthor Commented:
i should have said this:

I want to read from a txt file.
0
 
Infinity08Commented:
Something like this would be nicer :

vector<string> lines;
string line;
ifstream infile("the_file_name");
while (getline(infile, line)) {
    lines.push_back(line);
}
infile.close();

Open in new window

0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
lucky_jamesCommented:
not a problem.......use file i/o instead of normal i/o operations

check out:
http://www.mkssoftware.com/docs/man3/fgetln.3.asp

Hope it helps.
0
 
TroudeloupAuthor Commented:
while (getline(infile, line)) {
    lines.push_back(line);
}




i don't get this part.



ok how about, can you show me how to get the N th line and ignore the loop for now?
0
 
Infinity08Commented:
And if you want to keep your array, then you can do something like this :

string lines[MAX];
int i = 0;
ifstream infile("the_file_name");
while ((i < MAX) && getline(infile, lines[i++]));
infile.close();

Open in new window

0
 
lucky_jamesCommented:
Continuiing from my comment above :

string line;
ifstream filePtr("file_name");
for (Count = 0 ; getline(filePtr, line); i++)
{
    arr[Count] = line;
}


Hope it helps.
0
 
lucky_jamesCommented:
in above loop.....
Nth line would be in Nth array element.

0
 
Infinity08Commented:
>> i don't get this part.

What don't you get ? getline gets the next line from the file, and stores it in the string line, and the push_back adds that line to the vector :

        http://www.cplusplus.com/reference/string/getline.html
        http://www.cplusplus.com/reference/stl/vector/push_back.html


>> ok how about, can you show me how to get the N th line and ignore the loop for now?

To read the n-th line, you'll still need a loop to skip the first (n - 1) lines, and then read the n-th line.
0
 
TroudeloupAuthor Commented:
#include <iostream>
#include <windows.h>


using namespace std;




int main ()
{

      string line;
      ifstream filePtr("lines.txt");
      getline(filePtr, line);
      cout << line << endl;
      
      
      return 0;
}



i got this error message

0
 
lucky_jamesCommented:
>>i got this error message

what you got as error message??
0
 
Infinity08Commented:
#include <fstream>
#include <string>
0
 
TroudeloupAuthor Commented:
ah duh  >_<
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

  • 5
  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now