方法一:
使用scanf的返回值
根據scanf返回值的描述:
scanf()函數返回成功賦值的數據項數,讀到文件末尾出錯時則返回EOF。如:scanf("%d,%d", &a, &b);如果a和b都被成功讀入,那么scanf的返回值就是2如果只有a被成功讀入,返回值為1如果a和b都未被成功讀入,返回值為0如果遇到錯誤或遇到end of file,返回值為EOF。
所以,以下代碼可以判斷輸入是否為十進制數字。如果輸入字符或其他符號,ret值為0,如果輸入為十進制數,ret為1:
1 int digit; 2 printf("please input a integer\n"); 3 int ret = scanf("%d",&digit); 4 if(0 == ret) 5 { 6 printf("you should input a integer\n"); 7 system("pause"); 8 return 0; 9 }
與此例類似,利用scanf()的返回值也可以判斷其他類型的輸入。
方法二
滿足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母。
滿足 (c>='0' && c<='9')就是數字。