C++ アプリケーションの場合、stdin でファイルの終わり (EOF) をプログラムで強制するにはどうすればよいですか?
11094 次
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 に答える