FILE *fp;
char name[50];
fp=fopen("stu.txt","r");
while(fgets(name,50,fp)!=NULL)
{
printf(" %s",name);
fgets(name,50,fp);
}
fclose(fp);
В моем файле есть 4 имени в 4 разных строках, но на выходе отображаются только 1-е и 3-е имена. Что-то не так? Я знаю, что это очень просто, но это заняло много мое время.Чтение строк из файла
Удалить второй 'fgets (имя, 50, Fp),' –
Параметр 'while' условие цикла не определяет некоторое условие, которое заставит цикл прекратить всякий раз, когда это происходит внутри тела - это выражение который фактически оценивается перед каждым (потенциальным) циклом цикла, чтобы решить, следует ли выполнять тело цикла (что происходит, если результат отличен от нуля). Помещение 'fgets()' в условие цикла будет вызывать его, когда условие проверяется перед каждым прохождением цикла ... и 'fgets()' внутри тела цикла не зависит от него (ваш цикл заканчивается только тогда, когда 'fgets () 'call в условии возвращает' NULL', но не тогда, когда это делает тело в цикле). – Dmitri