Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст - C (СИ)
Формулировка задачи:
Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст
Решение задачи: «Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define N 255 int main(void) { FILE *in; char buf[N], *name="C:\\in.txt"; char text[N]="hello!"; int f=0; if((in=fopen(name, "r"))==NULL)return 1; while(fgets(buf, N, in)!=NULL) { if(strstr(buf, text)!=NULL){printf("%s\n", buf); f=1;} } if(!f)printf("No!\n"); fclose(in); return 0; }
Объяснение кода листинга программы
- Подключаются необходимые библиотеки
- Определяется константа N, ограничивающая размер буфера
- Создается указатель на файл in, а также на строки buf и text
- Открывается файл in для чтения с помощью функции fopen
- Устанавливается флаг f равным 0
- В цикле while считываются строки из файла до тех пор, пока не достигнут конец файла
- Для каждой считанной строки проверяется наличие в ней заданного текста с помощью функции strstr
- Если заданный текст найден, то строка выводится на экран и флаг f устанавливается равным 1
- После окончания цикла проверяется значение флага f. Если он равен 0, то выводится сообщение
No!
- Закрывается файл in с помощью функции fclose
- Программа возвращает 0, что означает успешное выполнение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д