小编yix*_*oyx的帖子

C - getchar()没有正确读取输入的第二个字符

我试图用来getchar()读取输入数字的所有数字并将它们存储在一个数组中.但每次我运行程序时,第二个数字都会出错.

这是我的代码:

int ch = 0;
int digits[0];
int i = 0;

while ((ch = getchar()) != '\n') {
    digits[i] = ch - '0';
    i++;
}
Run Code Online (Sandbox Code Playgroud)

为了表明会出现什么问题,我插入了两个printf:

while ((ch = getchar()) != '\n') {
    printf("%d ", ch);
    digits[i] = ch - '0';
    printf("%d\n", ch);
    i++;
}
Run Code Online (Sandbox Code Playgroud)

例如,当我输入时1100,我得到:

49 49

49 1

48 48

48 48

当我在一个单独的循环中打印数组时,输出是:

1 10 0 0

当我输入时66666,我得到:

54 54

54 6

54 54

54 54

54 5

阵列是: …

c getchar

3
推荐指数
2
解决办法
371
查看次数

标签 统计

c ×1

getchar ×1