Прежде всего, Маниша, вы наблюдаете необычное поведение кода, потому что цикл while
, который вы использовали, никогда не останавливается. Позвольте мне рассказать вам, почему очень просто. Условие остановки, указанное вами в цикле while
, т. Е. feof()
указывает, пытался ли кто-нибудь прочитать после конца файла. Но вы никогда не сможете прочитать PAST в конце файла, что означает, что цикл while
никогда не остановится.
Найдите альтернативный способ чтения файла. Есть много других способов, один из которых я показал ниже:
while (fgets(line, sizeof(line), file)) {
/* note that fgets doesn't strip the terminating \n(new line character) */
...
}
if (ferror(file)) {
/* IO failure */
} else if (feof(file)) {
/* format error (not possible with fgets, but would be with fscanf) or end of file */
} else {
/* format error (not possible with fgets, but would be with fscanf) */
}