0
這裏是我的一小段代碼:cin是在這種情況下使用的正確功能嗎?
int read_prompt() {
string prompt,fname,lname,input;
int id;
cout << "customers> ";
cin >> prompt;
if (prompt.compare("add") == 0) {
cin >> id;
cin >> fname;
cin >> lname;
NewCustomer(id,fname,lname);
} else if (prompt.compare("print")==0) {
print_array();
} else if (prompt.compare("remove")==0) {
cin >> id;
RemoveCustomer(id);
} else if (prompt.compare("quit")==0) {
return 0;
} else {
cout << "Error!" << endl;
}
read_prompt();
return 0;
}
這只是正常,只要用戶沒有輸入任何意外。其中一個測試案例應該通過輸入「添加125英里/小時Daffy Duck」,其中id最終爲125,fname等於mph,並且lname等於Daffy。在這個函數接收到所有三個變量後,它會再次調用它自己並重新提示用戶,然後Duck進入哪個「錯誤!」明顯得到輸出。
如何在用戶輸入時捕獲此錯誤?在這方面,cin是最好的功能嗎?我查了getline(),但我有點不確定如何實現它。
爲什麼不創建一個菜單驅動程序,允許用戶通過輸入接單數用'之開關來選擇所需要的功能。您將避免許多錯誤和驗證碼。 – ChiefTwoPencils 2013-02-15 20:06:37
'cin'不是一個函數;這是一個對象。因此,它具有成員函數,並且有可以使用它的自由函數。其中許多是提取器,也就是'operator >>'的重載。 – 2013-02-15 20:10:11