странный feof()
От: WinterMute Россия http://yarrr.ru
Дата: 29.08.06 19:01
Оценка:
Давно уже не работал с CRT и, недавно, обнаружил неприятный сюрприз: функция feof() возвращает true только после того как был прочитан байт следующий за последним. То есть, если есть файл нулевой длинны, то первый вызов feof() вернёт false, а true будет возвращено только после первой попытки чтения. В результате следующая запись не верна:

while( !feof(p_f) )
{
    printf( "%c", (char)getc() );
}


Во-первых любопытно, почему feof() так странно себя ведёт, есть этому какое-то логическое обоснование? Во-вторых как написать правильную функцию feof() через другие функции CRT? Функции f_length() нет или я её не нашёл?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.