Напечатать все строки файла, которые содержат более 10 символов - C (СИ)
Формулировка задачи:
Дано текстовый файл.напечатать все его строки, содержат более 10 символов...
Решение задачи: «Напечатать все строки файла, которые содержат более 10 символов»
textual
Листинг программы
#include <errno.h>
#include <stdio.h>
#include <string.h>
int main(void) {
FILE* f = fopen("file", "r");
if(f == NULL){
fprintf(stderr, "Can't open file. Error code: %d\n", errno);
return 1;
}
char buf[512];
while(!feof(f)){
fgets(buf, 512, f);
if(strlen(buf) > 10)
printf(buf);
}
fclose(f);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек:
errno.h- для работы с ошибками;stdio.h- для ввода/вывода данных;string.h- для работы со строками.
- Объявление функции
main(), которая является точкой входа в программу. - Открытие файла
fileв режиме чтения с помощью функцииfopen(). Если файл не может быть открыт, выводится сообщение об ошибке и возвращается код ошибки. - Создание буфера для чтения данных из файла. В данном случае размер буфера составляет 512 символов.
- В цикле
while(!feof(f))происходит чтение данных из файла в буфер с помощью функцииfgets(). Размер считываемых данных не должен превышать размер буфера. - Проверка длины строки в буфере с помощью функции
strlen(). Если длина строки больше 10 символов, строка выводится на экран с помощью функцииprintf(). - Закрытие файла с помощью функции
fclose()после окончания чтения. - Возврат 0 в качестве кода успешного завершения программы.