7

C++ アプリケーションの場合、stdin でファイルの終わり (EOF) をプログラムで強制するにはどうすればよいですか?

4

3 に答える 3

13

Unix ライクなシステムの端末にいる場合は、 を押しますCtrl-D。Windows では、Ctrl-Z.

編集:これを「プログラムで」実行したいという欲求を見たので、試してみることをお勧めしfclose(stdin)ます。どういうわけかそれが十分でない場合、よりクレイジーなアイデアはstd::cin.rdbuf()、ストリームが真の標準入力以外のものを参照するように設定し、そのストリームに対して必要なことを行うことです。しかし、これはコンピューターと戦っているような嫌なにおいがし始めるので、本当の目的が何であるかをもっと知りたいと思います.

于 2011-01-15T20:54:07.547 に答える
6

実際には、できません。stdin からデータを読み取ることができる限り、EOF には到達していません。実際、到達することはできません。stdinただし、それ自体を閉じることはできます。閉じるには、次のようにします。

fclose(stdin);

これ以降、 からデータを読み取ることはできませんstdin

于 2011-01-15T20:55:01.217 に答える