LINUX.ORG.RU

[C, stdio] fgets


0

0

fgets читает строку до EOF или до '\n'. однако, если последний символ в файле '\n', то:

1. feof возвращает ложь (т.е. файл до конца не прочитан)
2. fgets совершенно не изменяет буфер

Мне нужно построчно обработать файл. В данном случае получается, что последняя строка обрабатывается два раза. Что делать?

Ответ на: комментарий от dont

чтоб потом нигде кроме линуха этот код не работал?

Reset ★★★★★
()
Ответ на: комментарий от ttnl

1. getline будет каждый раз выделать память? чую замечательная производительность получится :)

2. в fgets задается размер буфера, поэтому проблем нет

Reset ★★★★★
()
Ответ на: комментарий от Reset

>в fgets задается размер буфера, поэтому проблем нет

Это да, но в getline тоже можно задать заведомо большую строку,
чтобы обходиться без realloc

ttnl ★★★★★
()
Ответ на: комментарий от Reset

Про производительность и переносимость в исходном сообщении и слова не было

dont
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.