Конец чтения файла в c - PullRequest
       1

Конец чтения файла в c

4 голосов
/ 18 февраля 2011

Моя программа дважды читает последнюю строку данных из infile. Когда я запускаю программу, последняя строка данных печатается дважды. Помогите мне, пожалуйста! Вот код,

while ( !feof ( in ) ) {
//fread();
}

Я надеюсь, что это происходит из-за функциональности feof.

Я не хочу использовать fgets или getline. Есть ли другой способ? Пожалуйста, направьте меня.

Спасибо всем, кто мне ответил! Я получил решение для этого! Я сделал с fgetc и unfgetc в стороне от петли do.

Вот код:

int ch;
ch=fgetc(fp);
do
{
ungetc(ch,fp);
//fread();

ch=fgetc(fp);
} while( (ch = fgetc(fp)) != EOF && ch != '\n' );

Ответы [ 2 ]

1 голос
/ 12 августа 2016

Попробуй это!Используйте fscanf для операций ввода.

while(fscanf(stdin, "%s", in) != EOF) {
//your code
}
1 голос
/ 18 февраля 2011

Вы должны использовать цикл do ... while, чтобы правильно использовать feof() в c.

if (!feof()) // in case the file is zero length.
{
  do
  {
       //whatever....          
  } while(!feof())
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...