失敗した後にcin>>を再度使用する方法、またはcin>>
を再度while(cin>>some_string>>some_int)
使用できるように合法的に終了する方法は?
演習は次のようになります: 2 つのベクトル (文字列 1 つと整数 1 つ) に名前と年齢を入力し、「no more」という行で入力を終了し、プログラムが対応する年齢を出力する必要がある名前を尋ねます (または「名前が見つかりません」 」)。私の問題は cin>> にあります。「no more」と入力すると、再び cin>> を使用しようとすると失敗します。
コード:
{
vector<string>name_s;
vector<int>age_s;
int age = 0,checker=0;
string name;
while( cin>>name>>age) //input of name and age
{
name_s.push_back(name); //filling vectors
age_s.push_back(age);
}
string name_check;
cout<<"\nEnter a name you want to check : ";
cin>>name_check;
for(int i =0;i<name_s.size();++i)
{
if(name==name_s[i])
{
cout<<"\n"<<name_check<<", "<<age_s[i]<<"\n";
++checker;
}
}
if(checker<1)
cout<<"\nName not found.\n";
system("PAUSE");
}