K&R の The C Programming Language を読んでいて、putchar と getchar について混乱しています。10文字を入力すると、プログラムがそれらを画面に出力するプログラムを作成しました。
#include <stdio.h>
int main()
{
int i;
int ch;
for(i = 0; i < 10; i++)
{
printf("Enter a single character >> ");
ch = getchar();
putchar(ch);
}
return 0;
}
次のような出力が得られると予想していました。
Enter a single character >> a
a
Enter a single character >> b
b
...など10回ですが、これは私が得た出力です:(2文字を入力した後に停止しました)
Enter a single character >> a
aEnter a single character >>
Enter a single character >> b
bEnter a single character >>
Enter a single character >>
入力文字が固定文字列と組み合わされて出力される理由がわかりません。
また、文字を格納するために int が使用される理由もよくわかりません。