評價: 0 回應: 0 閱覽: 102
置頂

輸入資料型態不符的問題

#include<iostream>

int main(void)
{
int i,t;

        while (1)
        {
                printf("key a number(0~100)\n");
                t = scanf_s("%d", &i);
                getchar();
                if (t == 0 || i > 100 || i < 0)
                        continue;
                else
                        break;
        }
                printf("%d\n", i);


system("pause");
return 0;
}

原本我自己寫時沒有加入getchar();

可以解決輸入數字大於100和小於0的問題

但當我輸入的資料不是數字時就會形成死結

會不斷的跑printf("key a number(0~100)\n");這行程式碼,無法重新輸入資料

後來google以後發現有範例後面加入getchar();

我加入以後就可以解決死結、無法重新輸入的問題

不太懂為什麼

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言