我需要製作一個函數,該函數從用戶那裏獲取輸入並確保它是一個整數並且不包含任何字符。檢查輸入是否是整數
我寫了這個代碼,它完美地適用於整數和單個字符。但是,如果我輸入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'。 –