【发布时间】:2017-03-15 19:22:37
【问题描述】:
我有一个这样的程序,
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: _处等待,那么你想在哪里看到输出? -
即使用户按下回车,您是否希望光标在回车时等待?
标签: c++