ユーザーが文字列を入力するのを待つコンソールアプリケーションがあります。スペースが含まれている可能性があるため、getline である必要があります。しかし、それは入力を待たず、それをスキップして関数を実行します。これが私のコードです:
int main()
{
vector<person> people;
bool flag = true;
int num_people = 0;
//char*filename="names.txt";
people = read_file();
while(flag)
{
int sel = 0;
string args;
cout << "1 - Sök del av personnamn" << "\n"
<< "2 - Sök städer" << "\n" << "3 - Avsluta" << endl;
cin >> sel;
if(sel == 1)
{
cout << "Mata in delen av personnamnet" << endl;
getline(cin, args);
print_result(find_in_names(people, args));
}
else if(sel == 2)
{
cout << "Mata in staden" << endl;
getline(cin, args);
args = lower_letters(args);
print_result(find_person_from_city(people, args));
}
else if(sel==3)
{
flag=false;
}
else
{
cout << "FEL, TRYCK OM!" << endl;
}
}
}
エラーなしで実行されます。getline をスキップするだけで、ユーザーは何も入力できません。