Я пытаюсь читать строки за строкой из файла и распечатывать строку. Но когда я запускаю код, он начинает печатать строки, начинающиеся посередине.C - строки чтения из файла
char temp[300];
if (input == NULL) {
printf("Can't open input file.\n");
exit(-1);
}
while (!feof(input)) {
fgets(temp, 300, input);
printf("%s \n", temp);
}
fclose(input);
Любые причины для его начала посередине?
Edit: Так и пример того, что я имею в виду в середине, что у меня есть список, как этот
7,12 Angry Men,1957
95,2001: A Space Odyssey,1968
211,8 and a Half,1963
190,A Beautiful Mind,2001
68,A Clockwork Orange,1971
223,A Fistful of Dollars,1964
108,A Separation,2011
233,A Streetcar Named Desire,1951
40,Alien,1979
58,Aliens,1986
96,All About Eve,1950
224,All Quiet on the Western Front,1930
250,All the President's Men,1976
91,Amadeus,1984
69,Amelie,2001
54,American Beauty,1999
33,American History X,1998
189,Amores Perros,2000
и когда я добираюсь до Printf он показывает только этот
58,Aliens,1986
96,All About Eve,1950
224,All Quiet on the Western Front,1930
250,All the President's Men,1976
91,Amadeus,1984
69,Amelie,2001
54,American Beauty,1999
33,American History X,1998
189,Amores Perros,2000
edit2 : Я сделал изменение в программе, чтобы избавиться от \ n в printf
while (fgets(temp, sizeof(temp), input) != NULL) {
printf("%s", temp);
}
и это устранило проблему. Есть ли причина, по которой \ n вызвала эту проблему?
Проведите следующий эксперимент: проведите вывод вашей программы в файл; затем посмотрите на этот файл с помощью (хорошего!) обычного текстового редактора. Все ли линии там? – usr2564301
Я открыл файл в блокноте и сравнил его с моими результатами, и именно так я заметил недостающие элементы в списке. –
Молодцы! (Причина, о которой я спрашивал, заключалась в том, что «не видно» могло означать, что они были перезаписаны * только на экране * из-за бродячих возвратов каретки. У меня это было.) – usr2564301