我需要制作一个函数,该函数从用户那里获取输入并确保它是一个整数并且不包含任何字符。检查输入是否是整数
我写了这个代码,它完美地适用于整数和单个字符。但是,如果我输入dfd
即终止多个字符输入。下面是我的代码用gcc在Linux编译:
#include <ctype.h>
int getint()
{
int input = 0;
int a;
int b, i = 0;
while((a = getchar()) != '\n')
{
if (a<'0'||a>'9')
{
printf("\nError in input!Please try entering a whole number again:");
input=0;
fflush(stdin);
return getint();
}
b = a - '0';
input = ((input*10) + b);
i++;
}
return input;
}
朋友学习[缩进](http://www.cs.arizona.edu/~mccann/indent_c.html)。 –
你为什么要对stdin执行fflush?它是一个输出函数(除非我要学习一些非常模糊的东西)。你是不是指fpurge? – DrC
'fflush(stdin)'的行为不是由C标准定义的。它由一些实现和POSIX定义,但在这里没有用。你可能想要做的是读取和放弃输入字符,直到你看到'\ n''或'EOF'。 –