Напечатать все строки файла, содержащие в качестве фрагмента заданный текст - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> #include <conio.h> //Дан текстовый файл. Напечатать все его строки, содержащие в качестве фрагмента заданный текст int main( void ) { setlocale(LC_ALL,"rus"); char ch[256], text[50]; int len=0, maxlen=0; FILE *fp; if((fp = fopen("f.txt", "r"))==NULL) { printf("Нельзя открыть файл...\n"); exit(1); } printf("Введите искомый текст (не более 50 символов): "); gets(text); do { fgets(ch,255,fp); if(ch==text) printf("%c",ch); } while(!feof(fp)); fclose(fp); system("pause"); return 0; }
Решение задачи: «Напечатать все строки файла, содержащие в качестве фрагмента заданный текст»
textual
Листинг программы
do { fgets(ch,255,fp); if(strstr(ch,text)!=0) printf("%s",ch); } while(!feof(fp));
Объяснение кода листинга программы
- В коде используется цикл do-while, который выполняет блок кода до тех пор, пока условие истинно.
- Условие цикла - это проверка на достижение конца файла (feof(fp)).
- Внутри цикла выполняется чтение строки из файла с помощью функции fgets.
- Переменная ch является буфером для хранения прочитанной строки, ее размер 255 символов.
- Если в строке есть заданный текст (проверка с помощью функции strstr), то эта строка выводится на экран с помощью функции printf.
- Цикл продолжается до тех пор, пока не будет достигнут конец файла.
- Заданный текст, который ищется в строках файла, хранится в переменной text.
- Файл, из которого считываются строки, открывается с помощью функции fopen и обозначается переменной fp.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д