Уроки C++
Вывод предложения с введённым словом в С++Решение этого задания, может немного напоминать поисковые системы, такие как Yandex и Google, которыми мы все привыкли пользоваться – вы вводите слово, а программа вам находит предложение содержащее это слово. Но в нашем случае программа будет куда проще, потому что алгоритм работы поисковых систем гораздо серьёзней. Итак, в нашем случае нам надо будет осуществлять поиск в простой базе данных, хранящей информацию о результатах ЕГЭ некоторых учеников. Мы вводим фамилию, а программа выдаёт информацию об этом ученике. Данное решение базируется на примере предыдущего урока, только в данном случае нужно будет выводить “line”, то есть строку, в которой находится введенное слово. Перед тем как написать код, создайте текстовый файл "mybaza" на диске "d:" и напишите в нём небольшой список: Ivanov.A.A - 1991, русский язык - 87, математика - 74, физика - 72; Petrov.D.F - 1992, русский язык - 68, математика - 62, обществознание - 70; Ararat.A.V - 1990, русский язык - 101; математика - 100; обществознание - 100; Ivanov.G.G - 1991, русский язык - 82, математика - 69, информатика - 84; Repin.F.F - 1992, русский язык - 54, математика - 52, обществознание - 62; А затем напишите следующий код:
#include "stdafx.h" #include "iostream" #include "clocale" using namespce std; int main() { setlocale(LC_ALL, "Russian"); const int n = 101; char name[n], line[n];   // line хранит в себе проверяющуюся строку cout << "Введите фамилию:" << endl << endl; cin.getline(name, n); cout << endl; ifstream fin("d:\\mybaza.txt");   // открываем файл if (!fin) { cout << "ERROR! File no found!" << endl; system("PAUSE"); return 1;} while (fin.getline(line, n)){ if (strstr(line, name)) {cout << line << endl; } } cout << endl; system("PAUSE"); return 0; }
Результат:
