Выдать ошибку, если чтение пошло за концом файла - C (СИ)
Формулировка задачи:
из файла считывается несколько строк, пускай 5
если ф файле например только 4 строки, то нужно вывести ошибку, через иф.
я так понимаю должно быть что-то типа:
if (eof(fp)) ...
Решение задачи: «Выдать ошибку, если чтение пошло за концом файла»
textual
Листинг программы
... FILE * f; char buf[BUFSIZ]; int i; ... for ( i = 0; i < 5; ++i ){ if ( ! fgets(buf, BUFSIZ, f) ){ fprintf(stderr, "Unexpected end of file!\n"); fclose(f); return 1; } /* обработать считанную строку */ } ...
Объяснение кода листинга программы
- Объявлены необходимые переменные: FILE * f; char buf[BUFSIZ]; int i;
- Задаётся цикл, который выполняется 5 раз: for ( i = 0; i < 5; ++i ){
- В каждой итерации цикла происходит проверка: считывает ли функция fgets строку из файла в буфер buf. if ( ! fgets(buf, BUFSIZ, f) ){
- Если функция fgets вернула 0 (что означает, что строка не была полностью прочитана), то выводится сообщение об ошибке:
fprintf(stderr,
Unexpected end of file!\n
); - Закрывается файл f с помощью функции fclose. fclose(f);
- Возвращается 1. return 1;
- После каждой итерации цикла выполняется обработка считанной строки. / обработать считанную строку /
- В конце цикла переменная i выводится на экран. ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д