C - 如何检查输入的号码

时间:2011-11-23 18:08:51

标签: c string numbers

如何简单而正确地检查用户是否输入数字而不是C语言的字符串或字符串?我试图写一些包含以下内容的循环:

if (scanf("%d",&number)=1) 

但他们永远不会工作或结束。输入数字时,循环应该结束。

4 个答案:

答案 0 :(得分:4)

应该是

if (scanf("%d", &number) == 1) // Notice the two ='s, not just one

单个=是赋值运算符,双==是相等性测试。

答案 1 :(得分:1)

我想你想要这个:

for (scanf(" %d", &number); (number < -100 || number > 100); scanf(" %d", &number)) {
    printf("you didn't enter a valid number, try again >");
}

答案 2 :(得分:1)

您的行应该只是: if (scanf("%d",&number)){

如果输入的数字不是数字,则会产生:if(0){,而不是if(1){

答案 3 :(得分:0)

这是否适合您的背景:

char ch;int g;
for(ch=getc(stdin);isalpha(ch);ch=getc(stdin))
{
printf("\nenter numbers only");
while(isalpha(getc(stdin))){}
}
ungetc(ch,stdin);
scanf("%d",&g);
printf("number entered  %d",g);