【发布时间】:2021-01-25 00:58:57
【问题描述】:
所以我有这种方法,我必须输入一个值(一个值大于 1 的整数),如果看到给定的值在外部,则循环回用户初始化以上参数。
我遇到的问题是当 letter 输入到控制台时,程序要么将该字母解释为 0(这是用于退出程序的特殊数字),要么(当我尝试给出一个虚拟值)将进入一个无限循环,其中(我相信)程序只是继续输入虚拟值而不是接收用户的新输入。
void input(int &n)
{
do
{ //prompt
cout << "Input an integer number greater than 1:" << endl;
//initialization and check for non-int value
if (!(cin >> n))
{
cout << "THE NUMBER INPUT IS NOT RECOGNISED AS AN INTEGER, TRY AGAIN." << endl;
n = 1;
}
//checks for special int values
if (n == 0)
exit(0);
else if (n < 1)
cout << "INPUT VALUE OF " << n << " IS NOT ALLOWED, TRY AGAIN." << endl;
} while (n <= 1);
}
上面是植入了虚拟值的程序的样子。欢迎任何建议,在此先感谢。
【问题讨论】:
标签: c++ validation infinite-loop