3
votes

Im trying to write a simple code in c++ to read in integer from a text file, the code should stop reading when it encounter a negative integer. The txt file contains 1 positive integer on each line, and the last line is a negative integer.

My code right now using eof, and it reads in negative integer also, which I dont want.

while(!inFile.eof())
{
    inFile >> data;
}

Text file

10
22
33
34
-1   

Thanks in advance :)

4

4 Answers

9
votes

hmm..

int data = 0;
while(inFile >> data && data >= 0) 
{
 // do stuff with data.
}
4
votes

You would at least need to read the negative number to determine that you have reached end of input.

while( inFile >> data)
{
    if ( data < 0 ) break;
}
2
votes
while(!infile.eof())
{
infile>>data;
if(data>0)
cout<<data;
}

read from the file check if it is greater than zero then print it

-5
votes

Maybe something like this, which tries to test the incoming integer, would work:

while(!inFile.eof())
{
    inFile >> data;
    if ( data < 0 ) {
      break;
    }
}