我有一个这样的程序,
char name[100];
char age[12];
cout << "Enter Name: ";
cin >> name;
cout << "Enter Age: ";
cin >> age;
现在年龄是一个可选字段,因此用户只需按 ENTER 键并将该值设置为 NULL。但问题是, cin 不带 ENTER 键,只是呆在那里等待有效的键盘字符或数字输入。
我认为问题在于 cin 需要一个有效的输入,因此永远留在那里。
所以我尝试了以下方法来检测年龄的 ENTER 按键。
cout << "Enter Age: ";
if (cin.get() == '\n') {
cout << "ENTER WAS PRESSED" << endl;
}
现在只要用户在输入名称后按下 ENTER 键,它就会直接进入 IF 条件。
我也试过:
getline(cin, age);
但这也不会停留在 cout << "Age: ";
等待用户输入。
用户可以输入有效年龄,也可以直接按 ENTER 键不输入年龄。
对于以下代码:
cout << "Enter Name: ";
cin >> name;
cout << "Enter Age: ";
if (cin.get() == '\n') {
cout << "ENTER WAS PRESSED" << endl;
}
输出是:
Enter Name: asdf
Enter Age: ENTER WAS PRESSED
我希望光标在 Enter Age: _ 处等待
我怎样才能做到这一点?
原文由 user5749114 发布,翻译遵循 CC BY-SA 4.0 许可协议
你试过这个吗?:
也看看 这个问题