0

重複の可能性:
getchar()がWindowsコンソールでリターンをEOFとして認識しないのはなぜですか?

私はCを初めて使用し、EOFとgetChar()がどのように機能するかを理解しようとしています。

#include <stdio.h>

main()
{

int number = 0;
while(getchar() != EOF)
     number++;

printf("%d", number);
}

ランダムな文字を入力しても、プログラムは何もしません。whileループから抜け出すことはないと思います。何故ですか?Windows7でCodeBlocksを使用しています。

4

1 に答える 1

1

EOFキャラクターを送っていないからです。「EOF」は「ファイルの終わり」を表します。コンソール入力(「標準入力」と呼ばれる)は、ファイルの特殊なケースです。ただし、この特別なファイルが終了したことを示すには、特別なシグナルを送信する必要があります。Ctrl + Zを押すと(何らかの理由でEnterキーが続く)、Windowsでこの効果を得ることができます。

于 2012-06-05T15:19:55.650 に答える