LINUX.ORG.RU

[C, stdio] fgets


0

0

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

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

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

Ответ на: Re: [C, stdio] fgets от dont

Re: [C, stdio] fgets

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

Reset ★★★★★ ()
Ответ на: Re: [C, stdio] fgets от ttnl

Re: [C, stdio] fgets

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

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

Reset ★★★★★ ()
Ответ на: Re: [C, stdio] fgets от Reset

Re: [C, stdio] fgets

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

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

ttnl ★★★★★ ()
Ответ на: Re: [C, stdio] fgets от Reset

Re: [C, stdio] fgets

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

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