我正在尝试学习 C++,无论如何我都在使用 if 语句。
我编写了一个程序,询问两个用户的全名和年龄(虚构用户),它询问 user1 的姓名和年龄与 user2 相同,但不知何故,询问 user2 的姓名被跳过,最终询问 user2 的年龄
为什么?
这是我的代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string usernameone;
string usernametwo;
int age1;
int age2;
//ask the users their name and age
cout << "Hi may I know your full name ? : ";
getline ( cin, usernameone, '\n');
cout << "\nHello " << usernameone << " May I know now whats your age ? : ";
cin >> age1;
cout << "Ok thanks for the information, now may I talk to the other user ? thanks.\n\n";
cout << "Hello may I know your full name ? : ";
getline ( cin, usernametwo, '\n');
cout << "\nHello " << usernametwo << " May I know now whats your age ? : ";
cin >> age1;
if(age1 < age2)
{
cout << "looks like " << usernameone << " is older than " << usernametwo;
}
else
{
cout << "ok " << usernametwo << " is older than " << usernameone;
}
if(age2 && age1 >= 100)
{
cout << "your both lying your age can't be 100 and above";
}
cin.ignore();
cin.get();
return 0;
}
最佳答案
cin >> age1;
cout << "Ok thanks for the information, now may
I talk to the other user ? thanks.\n\n";
cout << "Hello may I know your full name ? : ";
将'\n'
留在输入流中,您将在下一次读取中读取它
getline ( cin, usernametwo, '\n');
您可以通过以下方式忽略此字符:
cin >> age1;
cout << "Ok thanks for the information, now may
I talk to the other user ? thanks.\n\n";
cout << "Hello may I know your full name ? : ";
cin.ignore();
getline ( cin, usernametwo, '\n');
关于c++ - 为什么 usernametwo 总是被跳过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23054828/