【发布时间】:2018-06-09 06:50:21
【问题描述】:
我正在尝试创建一个功能来检查用户的输入,并让他们在输入错误类型的输入时再试一次。
因此,当我在函数中输入错误的输入时,它会将我置于无限循环中。我能做些什么来修复它?
我只能使用getchar 和scanf 进行用户输入。
int sizeOfField()
{
int size,inputCheck,flag=0;
while (!flag)
{
inputCheck= scanf(" %d ", &size );
if ( inputCheck < 1 )
{
printf( "Invalid Input!\n" );
printf( "Try agian");
} else if (inputCheck == 1)
flag=1;
}
return size;
}
【问题讨论】:
-
清除
stdin。但是再次正确地做很多工作。为什么不fgets和strtol? -
你能重新格式化你的代码并检查你的括号吗?目前尚不清楚您是否在 while 循环中过早地执行了返回。
-
您输入的“错误输入”是什么?从代码中,你做了这样的事情,如果 scanf 失败,再次等待下一个输入 - 我想,它会一直循环,直到你给出正确的输入..
-
这就是我想要的......但是 scanf 出于某种原因只工作一次,它使程序在循环中无限运行
标签: c validation while-loop integer scanf