Выдать ошибку, если чтение пошло за концом файла - 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 выводится на экран. ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д