我有一个像这样的程序,
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;
}
现在,当用户输入名称并按下回车键时,它直接进入IF条件。
我也尝试过:
getline(cin, age);
但这并不仅仅止于 cout << "Age: ";
等待用户输入。
用户可以输入有效年龄,也可以只是按下回车键不输入年龄。
以下是代码:
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
我希望光标停留在输入年龄:_处。
我该怎么做呢?