Я хочу попросить пользователя найти имя автора или год книги.Как только они это сделают, я хочу, чтобы он распечатал все найденные результаты.
Я включил случай переключения, открыл файл, даже включил там функцию поиска.Но моя функция поиска, кажется, не работает, и я не могу сказать, почему.
Если вы можете взглянуть на мою функцию поиска.Может быть, вы могли бы обнаружить ошибку, которую я не могу найти?
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
int main()
{
ifstream input("C:/Users/mziad/Desktop/School/C++/HW2/bestsellers.txt");
string line;
vector <string> v;
string temp;
int index, prev;
int i;
if (input.is_open())
{
while (!input.eof())
{
int data;
getline(input, line);
v.push_back(line);
}
}
char choice;
int x, y;
string m, n;
string author, title;
while (1)
{
cout << "What would you like to do?" << endl;
cout << "1: Look up year range" << endl;
cout << "2: Look up month / year" << endl;
cout << "3 : Search for author" << endl;
cout << "4 : Search for title" << endl;
cout << "Q: Quit" << endl;
cin >> choice;
switch (choice)
{
case '1':
cout << "Enter beginning year: ";
cin >> x;
cout << "Enter ending year: ";
cin >> y;
break;
case '2':
cout << "Enter month (as a number, 1-12): ";
cin >> m;
cout << "Enter year: ";
cin >> n;
break;
case '3':
cout << "Enter an author's name (or part of a name): ";
cin >> author;
break;
case '4':
cout << "Enter a title (or part of a title): ";
cin >> title;
break;
case 'Q':
exit(0);
default:
cout << "Invalid choice\n";
}
bool isFound = 0;
while (!input.eof())
{
string temp = "";
getline(input, temp);
for (int i = 0; i < line.size(); i++)
{
if (temp[i] == line[i])
isFound = 1;
else
{
isFound = 0;
break;
}
}
if (isFound)
{
cout << "Your Search Query: ";
for (int i = line.size() + 1; i < temp.size(); i++)
cout << temp[i];
break;
}
}
if (input.eof() && (!isFound))
{
cout << "Name not found!\n";
}
input.close();
}
}
Я хочу, чтобы она искала пользовательские входы и возвращала результаты.Он просто говорит «Имя не найдено» или возвращается к параметрам без вывода результатов.