我正在编写一个程序,要求用户输入整数,如果未输入整数,则必须重新输入其值。
我遇到的问题是,当我尝试使用“ isdigit”工具时,程序会识别出输入了非整数,但随后无限地重复该错误。
我尝试同时使用isalpha和isdigit。
while(true)
{
cout << "Enter a decimal value, or press 0 to exit: " << endl;
cin >> decimal;
oct = decimal;
hexadecimal = decimal;
if(decimal < 0)
{
cerr << "***ERROR*** Value entered < 0" << endl;
}
else if(!isdigit(decimal))
{
cerr << "***ERROR*** Value entered must be an integer" << endl;
}
else if(decimal == 0)
{
cout << "***EXITING***" << endl;
system("pause");
exit(1);
}
else
{
break;
}
}
如果我输入“ a”,它将无限重复。
错误 输入的值必须是整数 输入一个十进制值,或按0退出: 错误 输入的值必须是整数 输入一个十进制值,或按0退出: 错误 输入的值必须是整数 输入一个十进制值,或按0退出: 错误 输入的值必须是整数 输入一个十进制值,或按0退出: