Дан текстовый файл. Выяснить, имеется ли в нем строка, которая начинается с данной буквы - C (СИ)
Формулировка задачи:
Дан текстовый файл. Выяснить, имеется ли в нем строка, которая начинается с данной буквы. Если да, то напечатать ее.
Решение задачи: «Дан текстовый файл. Выяснить, имеется ли в нем строка, которая начинается с данной буквы»
textual
Листинг программы
#include <stdio.h> #include <locale.h> int main(void){ setlocale(LC_ALL,"RU"); FILE *file; int c=0,a; long int d; char bukva; if ((file = fopen("iii.txt", "r"))==NULL) { printf("Невозможно открыть файл!\n"); return(0); } printf("Введите букву: "); scanf("%c",&bukva); while ((a = fgetc (file)) != EOF) { c++; if (c == 1) { if(a==bukva){ printf("%c", a); while((a=fgetc(file))!='\n'){ printf("%c", a); } } } if(a=='\n')c=0; } printf("\n"); fclose(file); return(0); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с файлами и вводом-выводом
- Устанавливаем локаль на русскую, чтобы корректно работать с русскими символами
- Объявляем переменные: файловый указатель, счётчик строк, переменную для хранения символа, а также переменную для хранения целочисленного значения, которое будет использоваться для чтения символов из файла
- Проверяем, удалось ли открыть файл. Если нет, выводим сообщение об ошибке и завершаем программу
- Запрашиваем у пользователя ввод буквы, с которой необходимо начать поиск строки в файле
- Устанавливаем счётчик строк в 0
- В цикле, пока не достигнем конца файла, читаем каждый символ. Если это новая строка и предыдущий символ был равен введённой букве, то выводим текущий символ, а затем с помощью функции fgetc читаем все символы до новой строки и выводим их
- Если текущий символ — новая строка, сбрасываем счётчик строк в 0
- После завершения чтения файла закрываем его и завершаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д