Поиск слов в файле по первой букве. Нужно добавить вывод результатов в файл - C (СИ)
Формулировка задачи:
На консоль все выводится. Но вот реализовать в данном случае вывод результатов поиска еще и в текстовый файл у меня не получается. Помогите, пожалуйста, если не трудно.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> int main(void) { setlocale(0, "Russian"); char str[1000]; char *word; char buk; FILE *fid, *fid2; errno_t err; if ((fopen_s(&fid, "D:\\data.txt", "r")) || (err = fopen_s(&fid2, "D:\\data2.txt", "w")) != 0) { printf("\n\t Файл не может быть открыт.\n "); printf("\nНажмите любую клавишу: "); _getch(); return 0; } fopen_s(&fid, "D:\\data.txt", "r"); fgets(str, 1000, fid); fputs(str, stdout); word = strtok(str, "\n\t ,.!?'()\r"); printf("\n\n Введите латинскую букву "); buk = getchar(); puts("\n\n Найденные слова:\n"); while (word) { if (word[0] == buk) puts(word); word = strtok(NULL, "\n\t ,.!?'()\r"); } fclose(fid); fclose(fid2); printf("\n Поиск окончен. Нажмите любую клавишу: "); _getch(); return 0; }
Решение задачи: «Поиск слов в файле по первой букве. Нужно добавить вывод результатов в файл»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> int main(void) { setlocale(0, "Russian"); char str[1000]; char *word; char buk; FILE *fid, *fid2; errno_t err; if ((fopen_s(&fid, "D:\\data.txt", "r")) || (err = fopen_s(&fid2, "D:\\data2.txt", "w")) != 0) { printf("\n\t Файл не может быть открыт.\n "); printf("\nНажмите любую клавишу: "); _getch(); return 0; } fgets(str, 1000, fid); fputs(str, stdout); word = strtok(str, "\n\t ,.!?'()\r"); printf("\n\n Введите латинскую букву "); buk = getchar(); puts("\n\n Найденные слова:\n"); while (word) { if (word[0] == buk) { printf("\n %s", word); fprintf(fid2, "\n %s", word); } word = strtok(NULL, "\n\t ,.!?'()\r"); } fclose(fid); fclose(fid2); printf("\n\n Поиск окончен. Нажмите любую клавишу: "); _getch(); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Устанавливается русская локаль
- Объявляются и инициализируются переменные:
- str - массив символов для чтения строки из файла
- word - указатель на строку, которая будет обрабатываться
- buk - символ, который будет использоваться для поиска
- fid и fid2 - указатели на файлы
- err - переменная для хранения кода ошибки
- Проверяется возможность открытия файлов. Если открытие не удалось, выводится сообщение об ошибке и программа завершается
- Считывается первая строка из файла в массив str
- Выводится содержимое str на экран
- word устанавливается равным первому слову в str, разделенному по пробелам
- Пользователю предлагается ввести латинскую букву для поиска
- В цикле while находятся все слова, начинающиеся с введенной буквы
- Если слово начинается с введенной буквы, оно выводится на экран и записывается в файл
- Файлы закрываются
- Выводится сообщение о завершении поиска и просьба нажать любую клавишу
- Программа завершается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д