Как вы прекратите чтение целого из текстового файла, когда встретите отрицательное целое число?

Я пытаюсь написать простой код в С++ для чтения в integer из текстового файла, код должен прекратить чтение, когда он встретит отрицательное целое число. Файл txt содержит 1 положительное целое число в каждой строке, а последняя строка - отрицательное целое число.

Мой код прямо сейчас, используя eof, и он также читает в отрицательном целом, чего я не хочу.

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

Текстовый файл

10
22
33
34
-1   

Заранее спасибо:)

Ответ 1

хмм..

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

Ответ 2

Вам, по крайней мере, нужно будет прочитать отрицательное число, чтобы определить, что вы достигли конца ввода.

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

Ответ 3

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

прочитайте из файла, проверьте, больше ли оно нуля, затем распечатайте его

Ответ 4

Возможно, что-то вроде этого, которое пытается проверить входящее целое число, будет работать:

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