我有一個這樣的程序,檢測ENTER鍵在C++
char name[100];
char age[12];
cout << "Enter Name: ";
cin >> name;
cout << "Enter Age: ";
cin >> age;
現在的年齡是一個可選字段,所以用戶只需按下ENTER鍵,有一個空值。但問題是,cin不採用ENTER鍵,只是呆在那裏等待有效的鍵盤字符或數字輸入。
我認爲這個問題是因爲cin需要一個有效的輸入,因此永遠呆在那裏。
所以我嘗試了下面的方法來檢測ENTER鍵按Age。
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
我希望光標等待輸入年齡:_
我怎樣才能做到這一點?
顯示你的整個代碼哪裏出了問題「當你輸入名字仍然進入,如果」 – Sniper
更新的代碼和當前輸出。 –
如果您希望光標在'Enter Age:_'處等待,那麼您想在哪裏看到輸出? –