私はプログラミングが初めてで、コードで次のことが起こる理由を理解できないようです。
#include <stdio.h>
/*copy input to output; 1st version */
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
それで、いくつかの読書をした後、私は以下を集めました:
getchar()
保持機能であるため、Enter キーを押すまで何も実行されません。- Enterキーを押す前に、すべてのキーストロークがバッファに保存されます
- が
getchar()
呼び出されると、バッファ内の最初の値を参照し、その値になり、その値をバッファから削除します。
私の質問は、最初のコードを削除するとc = getchar()
、結果のコードが元のコードとまったく同じ機能を持つということです。なぜこれが起こるのですか?putchar(c)
コードを保持せず、c
まだ定義されていない を表示しようとするため、ランダムなシンボルが出力されるためですか? それが役立つ場合は、Code::Blocks を使用しています。