【问题标题】:Writing output to text file doesn't show input [closed]将输出写入文本文件不显示输入[关闭]
【发布时间】:2017-05-08 19:54:29
【问题描述】:

我有一个 C++ 程序,它应该从文本文件中读取输入,并将输出写入文本文件。我想尝试在不添加任何额外代码的情况下实现这一目标,所以我在命令行中编写

project.exe<input.txt>output.txt

这可行,但在 ouput.txt 文件中,我看不到任何输入。它只是说:

Enter option: 
option output

我可以在每次输入后添加std::cout&lt;&lt;option;,但是有没有办法在不添加任何额外代码的情况下显示输入?

【问题讨论】:

  • 实际代码在哪里?
  • 我认为这并不重要,因为我都是通过命令提示符完成的
  • 我认为这是我如何在命令提示符下调用它的问题,而不是 c++ 本身
  • @Jeremy 我得到了正确的输出,所有这些都不起作用是输入没有显示在文本文件中。我只是不确定这是否是使用命令提示符进行 I/o 的标准结果。
  • 这有点不清楚。除非您将输入回显到标准输出,否则它不会在“output.txt”中。

标签: c++ windows batch-file windows-7 io-redirection


【解决方案1】:

您正在尝试找到一种方法来让 Windows shell 复制或克隆您的输入流,以便在您的程序使用它之后,它也被发送到输出流。这样做有一些问题:

  1. 它已被您的程序消耗掉了!
  2. 您的程序可以控制输出流

我并不是说这是不可能的(在 Linux 上,tee 的一些混合可能是可能的),但如果有可能,那么它将是 hacky 并且肯定是非常规的。

坦率地说,我会坚持您自己的想法,即在程序本身内将输入镜像到输出流。如果有人以交互方式使用您的程序,那么这对他们来说会很奇怪,但您可以提供一个命令行开关来切换此功能。例如,它类似于 PuTTY 的可选“本地回显”功能。

【讨论】:

  • 谢谢,我不确定这是否容易实现。我刚刚被介绍给带有命令提示符的 I/O,所以我不知道它是/不具备什么能力。
  • 如果你想让自己痛苦,请探索stackoverflow.com/a/7940993/560648 :)
  • 抱歉所有的反​​对票;很多人显然不明白你的问题,虽然我认为它很清楚。
  • 一切都好。我认为在没有代码的情况下对问题投反对票是一种本能反应,而且有这么大的论坛,这是可以理解的。谢谢你的链接,我会仔细看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-02
  • 1970-01-01
  • 2013-11-25
  • 2016-09-10
  • 2016-07-13
相关资源
最近更新 更多