사용자로부터 입력을 받고 함수가 정수이고 문자가 포함되어 있지 않은지 확인해야합니다.입력이 정수인지 확인
정수 및 단일 문자에 완벽하게 작동하는이 코드를 작성했습니다. 그러나 dfd
즉 여러 문자 입력을 입력하면 종료됩니다.
#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'가 나타날 때까지 입력 문자를 읽고 버리는 것입니다. –