【发布时间】:2014-09-01 06:57:41
【问题描述】:
如何确保用户只输入一个整数值以使程序不会崩溃?
如果用户输入的不是整数,我想: printf("请重新检查您的输入);
printf("How many values do you want to enter? \t");
int g;
scanf("%d", &g);
【问题讨论】:
-
查看
scanf的返回值。见en.cppreference.com/w/c/io/fscanf -
此外,您可能希望在检测到无效输入后刷新该行的其余部分。必须有一个很好的副本
-
这里肯定有很多其他问题是重复的。其中一些可能会列在相关问题中,但我觉得这些都不是“规范”答案。
-
您将需要检查来自
scanf()的返回值,并将代码包装在一个循环中,如果转换失败,可能会安排吞噬输入行的其余部分(因为您可能需要跳过他们输入thirty-three,您希望他们输入33)。您应该区分“转换失败”(0) 和文件结尾 (EOF)。
标签: c int user-input scanf validation