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