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