我想检查给定的输入是否是整数输入。我不想将输入存储在字符串中。在看到有关 stackoverflow 的几个问题并通过点击和试用后,我创建了以下代码
while(scanf("%d%c",&num,&a) != 2 || a != '\n')
{
printf("Please enter an integer only : ");
if(a == '\n')
scanf("%c",&a);
else
{
while(a != '\n')
scanf("%c",&a);
}
}
它有效,但根据我的理解,以下内容也应该有效
while(scanf("%d%c",&num,&a) != 2 || a != '\n')
{
printf("Please enter an integer only : ");
while(a != '\n')
scanf("%c",&a);
}
有人可以告诉我为什么上面没有工作吗?另外,如果有人有更好的解决方案,请也提供。
注意:我将 12qwe 也视为无效输入。我只想要整数。