【发布时间】:2013-10-16 01:53:49
【问题描述】:
我不想做的是检查我的输入是否是数字然后继续,否则打印出错误的格式并要求新的输入。我得到的是一个无限循环打印“错误格式”
这是我输入数字的函数:
void input_number(int *number)
{
printf("Number: ");
if ( scanf("%d", number) == 1 )
return 0;
else
{
printf("-> Wrong format, try again! <-\n");
input_number(number); // start over
}
}
当我运行程序时,我希望它看起来像这样:
号码:你好
-> 格式错误,重试!
数量:4
然后继续……
【问题讨论】:
-
不是问题的原因,但您不想使用递归来重试。此外,无论您是否成功输入数字,您都在重新拨打
input_number。您的else子句周围缺少括号 ({})。