我现在正在学习 c++,现在我想知道捕获无效输入的最常见/最佳方法。我很想回答这个广泛开放的问题,但我更具体的问题如下。
我想从用户那里得到一个字符。如果 char 是 'y' 则它会重复,如果它是 'n' 则程序将关闭。如果我输入多个字符,那么它将与字符一样重复多次,例如我输入“你好”,它将显示我的输出 5 次。我假设它读取每个字符并遍历整个循环,然后读取行中的下一个字符。我怎样才能让它只显示一次?
bool valid = 0;
while(valid)
{
...
bool secValid = 0;
while(secValid == 0)
{
cout << "To enter another taxable income type 'y': \n\n";
char repeat = NULL;
cin >> repeat;
if(repeat == 'y')
{
valid = 0;
secValid = 0;
system("cls");
}else if(repeat == 'n')
{
return;
}else
{
secValid = 1;
}
}
}