これは私には意味がありませんが、うまくいけば、あなたの一人がなぜこれをしているのか理解しています。
隣り合った3つの整数は互いに関連しているため、getchar()で3文字を読み取る必要がある割り当てがあるため、次のように構造化されたループを設定します。
int c1, c2, c3 = 0;
while(c3 != EOF) {
c1 = getchar();
c2 = getchar();
c3 = getchar();
... do something with them...
}
問題は、文字数が3で割り切れない場合、最後の反復が実行されないことです。したがって、文字「Abcd」が入力された場合、Abcで最初の反復が実行されますが、2番目の反復はDでは何も実行されません。「Abcde」についても同じですが、Abcdefは機能します。
これは宿題なので、私にとっては問題を解決しないでください。しかし、これはgetcharの奇妙な点で、多くの文字が見つからない場合はループを終了するだけですか?