Давно уже не работал с CRT и, недавно, обнаружил неприятный сюрприз: функция feof() возвращает true только
после того как был прочитан байт следующий за последним. То есть, если есть файл нулевой длинны, то первый вызов feof() вернёт false, а true будет возвращено только после первой попытки чтения. В результате следующая запись не верна:
while( !feof(p_f) )
{
printf( "%c", (char)getc() );
}
Во-первых любопытно, почему feof() так странно себя ведёт, есть этому какое-то логическое обоснование? Во-вторых как написать правильную функцию feof() через другие функции CRT? Функции f_length() нет или я её не нашёл?