如果用户输入非整数,我试图让这段代码自动终止。截至目前,它识别非整数但不会自动退出程序。
double readCoeffs() {
double i;
bool valid = false;
while (!valid) {
valid = true;
cout << "Enter a coefficient\n" << endl;
cin >> i;
while (cin.fail()){ {
//stream is the correct type, if not it returns true,
//false otherwise.
cin.clear(); //This corrects the stream.
cin.ignore(); //This skips the left over stream data.
cout << "Please enter an Integer only." << endl;
valid = false; //The cin was not an integer so try again.
//break;
}
cout << "\n";
return i;
}
}
}
我认为一个休息陈述会这样做,但我一定是误解了它......
好奇我在这里做错了什么?谢谢!
答案 0 :(得分:1)
为什么你会认为添加break
或从方法返回会退出程序?这种方式仅在您从main()
返回时才有效。
您最好的选择是将控制代码添加到任何调用readCoeffs()
以确保代码退出。
其他选项
exit()
无论你做什么,不要只是在糟糕的输入上默默地失败......