如何在stdin上强制执行eof?

Wil*_*mKF 5 c++ stdin eof

对于C++应用程序,如何以编程方式强制stdin上的文件结束(EOF)?

Joh*_*nck 9

如果你在类似Unix的系统中的终端,请点击Ctrl-D.在Windows中Ctrl-Z.

编辑:看到了"以编程方式"执行此操作的愿望,我建议尝试fclose(stdin).如果某种程度上不够好,一个更疯狂的想法可能是用来std::cin.rdbuf()设置流来引用除真正的标准输入以外的东西,然后按照你想要的那样做.但这开始闻起来很糟糕,就像你正在与计算机作斗争一样,所以我想更多地了解真正的目标是什么.


Naw*_*waz 6

实际上,你做不到.只要你能从stdin读取数据,就没有达到EOF,事实上你永远无法达到它.但是,你可以关闭它stdin自己.要关闭它,请执行以下操作:

fclose(stdin);
Run Code Online (Sandbox Code Playgroud)

在此之后,您无法从中读取数据stdin.