私はしばらくの間、C で getchar() を完全に使用する際に問題を抱えていました。この場合、行を読み取って行の文字を配列に入れようとしています。ただし、 getchar() を配列に割り当てると、一部の文字がスキップされます。
たとえば、「1 つおきにスキップする」という入力の場合、出力は...I\n \nk\np\n \nv\nr\n \nt\ne\n になります。( \n は改行を表すためのものです。)
int N = 0;
char message[80] = {};
do
{
message[N] = getchar();
N++;
printf("%c\n", message[N-1]);
}
while(getchar() != '\n');
前に述べたように、 getchar() を使用しようとしたほとんどの場合、常に予期しない結果が得られます。関数が文字を読み取る方法が完全にはわかりません。