getchar()が実際に何をするのかを理解したいとき、この小さな断片はloop
私を混乱させました。
int i;
int c;
for (i = 0; i < 100; i++) {
c = getchar();
printf("%d\n", c);
printf("i is %d\n", i);
}
入力と出力は次のとおりです。
input: 1
output:
49
i is 0
10
i is 1
input: 12
output:
49
i is 2
50
i is 3
10
i is 4
以前に想定したように、1文字を入力すると、getchar()がそれを抽出し、putchar()がそれを出力し、プログラムは次のループに移動して次の入力を待ちます。しかし、結果は、コードが想定どおりに機能しないことを示しているようです。
- 出力数はどういう意味ですか?
- 余分なループ印刷が常にありますが
10
、これ10
はどういう意味ですか?それが意味する場合、なぜループ内でEOF
置き換えた後c = getchar();
、コードは常に出力しますが、私が想定したように、最後のループでを出力する必要がありますか?c = (getchar() != EOF);
1
0
とてもThx!