那麼有程序正在執行它的功能,但我試圖檢查,如果用戶輸入的值是數字(不包含字母或符號)。所以基本上我使用if和isdigit或'/ 0'條件。程序編譯正確,但輸入少於3種類型(偶數...)時出現錯誤。它有什麼問題?只有當我需要的是當數字是0-999時跳過循環並且當它不是時重新提問,或者如果它不是數字。檢查字符是否包含數字並將其轉換爲INT
char x[5];
bool isgood;
int tab[20][2],i=0,a;
do
{
isgood = TRUE;
printf("Write a where 0<a<1000\n");
scanf("%4s", x);
for (int j = 0; j < 4; j++)
{
if (isdigit(x[j])==0 || x[j]!='/0') isgood = FALSE;
}
a = atoi(x);
if (a<1000 && isgood == TRUE) break;
} while (1);
其實,終止零或者是普通的'0'或''\ 0''。你的編譯器應該警告你。 – usr2564301 2014-10-17 22:35:52
@WhozCraig實際上,如果isgood變得不合情理,這並不重要,因爲循環只能重複4次。 – Dnoren 2014-10-17 23:10:25
@Dnoren啊。精神牙線101.它肯定是星期五。 – WhozCraig 2014-10-17 23:13:09