У меня есть файл с 1000 лучших имен детей. Я хочу попросить у пользователя имя ... поискать файл ... и сказать пользователю, какое звание это имя для имен мальчиков и какое звание для имен девочек. Если его нет в именах мальчиков или девочек, он говорит пользователю, что его нет среди популярных имен для этого пола.
Файл выложен так:
Rank Boy-Names Girl-Names
1 Jacob Emily
2 Michael Emma
.
.
.
Желаемый выход для ввода Michael
будет:
Майкл занимает второе место по популярности среди мальчиков.
Если Майкла нет в именах девушек, он должен сказать:
Майкл не входит в число самых популярных имен девушек
Хотя, если бы это было так, он сказал бы:
Майкл (ранг) среди имен девушек
Код, который у меня есть, приведен ниже ... Я не могу понять это. Спасибо за любую помощь.
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
using namespace std;
void find_name(string name);
int main(int argc, char **argv)
{
string name;
cout << "Please enter a baby name to search for:\n";
cin >> name;
/*while(!(cin>>name))
{
cout << "Please enter a baby name to search for:\n";
cin >> name;
}*/
find_name(name);
cin.get();
cin.get();
return 0;
}
void find_name(string name)
{
ifstream input;
int line = 0;
string line1 = " ";
int rank;
string boy_name = "";
string girl_name = "";
input.open("/<path>/babynames2004.rtf");
if (!input)
{
cout << "Unable to open file\n";
exit(1);
}
while(input.good())
{
while(getline(input,line1))
{
input >> rank >> boy_name >> girl_name;
if (boy_name == name)
{
cout << name << " is ranked " << rank << " among boy names\n";
}
else
{
cout << name << " is not among the popular boy names\n";
}
if (girl_name == name)
{
cout << name << " is ranked " << rank << " among girl names\n";
}
else
{
cout << name << " is not among the popular girl names\n";
}
}
}
input.close();
}