首页 > 解决方案 > 如何从 getchar fn 读取 2 位整数?

问题描述

下面给出的代码是我试图实现的。

这个想法是用户只要不按两次回车就会输入值;当他显示值时,但是当输入 2 位值时,由于限制,它只返回一个值getchar,如何实现相同的目标同时读取两个数字?

#include<stdio.h>
int ptr[3][18];
void main()
{       
    printf("\n  Add a digit or DOUBLE Press enter to display values\n");
    int i=1,j,a=1,c=1,b,d,e,z=1;
    if(i<=a)
    scanf("%d",&ptr[1][i]);
    me1:
    ++i;
    b=getchar();
    if(b=='\n')
    {
        d=getchar();
        if(d=='\n')
        {
            goto me2;
        }
        else
        {
            e=d-'0';
            ptr[1][i]=e;
            z++;
            goto me1;
        }
    }
    me2:
    for(j=1;j<=z;j++)
    {
        printf("ptr[1][%d]= %d\n",j,ptr[1][j]);
    }

}

标签: c

解决方案


切勿在 scanf() 之后使用 getchar()。因为 scanf() 会读取标准输入流,直到遇到换行符。它将忽略标准输入中的换行符。所以,你需要放一个多余的“getchar()”来读取那个“\n”


推荐阅读