0

我在检查字母时出错。如果输入了一个字母,那么它假设打印出错误并退出。如果它是一个数字,那么它应该在 if 下运行语句(我没有放入代码中,因为它目前无关紧要)。当我输入一个数字时,它应该运行 if 语句,但是当我输入一个字母或数字时,它会转到 else 语句。

#include <stdio.h>
#include <ctype.h>


int main()
{
  int x;
  printf("Enter up to 10 positive integer ending with EOF:\n");

while((scanf("%d",&x)) != EOF && x < 100){


if( isdigit(x) ){
//statement
}

else{
printf("error, wrong input\n");
return 0;
}

}


if(x >= 100)
printf("error, wrong input\n");


return 0;
}
4

1 回答 1

1

您要isdigit检查 a char,请更改scanf为:

while((scanf("%c",&x)) != EOF && x < 100){  // yes x is an int, but here you want a char
于 2015-11-10T01:14:16.597 回答