这是我的代码的一小段:
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;
}
只要用户没有输入任何意外的东西,这就可以正常工作。该程序的一个测试用例应该传递输入“add 125mph Daffy Duck”,其 id 最终为 125,fname 等于 mph,lname 等于 Daffy。在此函数接收到所有三个变量后,它再次调用自身并再次提示用户,然后 Duck 会输入哪个“错误!” 明显得到输出。
当用户输入它时,我将如何捕捉到这个错误?cin 是在这方面使用的最佳功能吗?我确实查找了 getline(),但我有点不确定如何实现它。