如何在 C 中仅读取输入中的数字(没有字母,只有数字)



你刚才帮我读了一行。现在,我只想从输入中读取数字 - 没有字母,只有 5 位数字。我该怎么做?

我的解决方案无法正常工作:

int i = 0; 
while(!go)
    {
        printf("Give 5 digits: nn");
        while( ( c = getchar()) != EOF  &&  c != 'n' &&  i < 5 )
        {
            int digit = c - '0';
            if(digit >= 0 && digit <= 9)
            {
                input[i++] = digit;
                if(i == 5)
                {
                    break;
                    go = true;
                }
            }
        }
    }

使用 break 语句,go = true;永远不会被执行。因此,循环while (!go)是无限的。

#include <ctype.h>
#include <stdio.h>
int i = 0;
int input[5];
printf ("Give five digits: ");
fflush (stdout);
do
{
  c = getchar ();
  if (isdigit (c))
  {
    input[i] = c - '0';
    i = i + 1;
  }
} while (i < 5);

试试这个:

#include<stdio.h>
int main()
{
char  c;
        while( ( c = getchar()) != EOF  &&  c != 'n' &&  c >= 48  && c <= 57 )
        {
          printf("%cn",c);
        }
return 0;
}

相关内容

  • 没有找到相关文章

最新更新