Чтение из файла - C (СИ)
Формулировка задачи:
Проблема с циклом, не понимаю как сделать так, чтобы программа считает каждую строку, сравнивает с похожей, если очередная строка не подходит- переходим на следующую строку, и так пока весь файл не прочитает ( по идеи если есть строка нужная- вывести ее и цикл закончить, нет ее- в конце сообщение типа " совпадений не найдено")
Вот функция моя:
Проблема в том, что прочитав строку, программа видит что не строка не подходит и пишет сообщение, и читает далее до нужной, находит нужную - выводит ее и завершает чтение файла.
( на скрине видно)
Что не так, подскажите?
void poisk(void) { char PoiskPoAdresu[50], stringlih[100]; FILE * out = fopen("BDmenedgeraParoley.txt", "r"); printf("Для поиска пароля введите адрес сайта: "); scanf("%s", &PoiskPoAdresu); printf("Данные: "); while (fgets(stringlih,sizeof(stringlih), out) != NULL) { if (strstr(stringlih, PoiskPoAdresu) !=NULL) { printf("%s ", stringlih); break; } else printf("Не найдено\n"); } fclose(out); }
Решение задачи: «Чтение из файла»
textual
Листинг программы
while (fgets(stringlih, sizeof(stringlih), out) != NULL) { if (strstr(stringlih, PoiskPoAdresu) != NULL) { printf("%s \n\n", stringlih); break; } } if (strstr(stringlih, PoiskPoAdresu) == NULL) printf("не найдены\n"); else printf("В строке: %s хранятся данные для воссоздания пароля \n ", stringlih);
Объяснение кода листинга программы
- Объявлена переменная
stringlih
типаchar*
и инициализирована значениемstringlih
. - Объявлена переменная
out
типаFILE*
. - В цикле
while
происходит чтение из файла с помощью функцииfgets
в переменнуюstringlih
. - Если в строке
stringlih
найдено совпадение с шаблономPoiskPoAdresu
с помощью функцииstrstr
, то выводится сообщение с содержимым этой строки. - Если в строке
stringlih
не найдено совпадение с шаблономPoiskPoAdresu
с помощью функцииstrstr
, то выводится сообщениене найдены
. - Если в строке
stringlih
найдено совпадение с шаблономPoiskPoAdresu
с помощью функцииstrstr
, то выводится сообщениеВ строке: stringlih хранятся данные для воссоздания пароля
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д