【问题标题】:How to save a C++ console output in a text file?如何将 C++ 控制台输出保存在文本文件中?
【发布时间】:2014-04-07 05:08:54
【问题描述】:

我有两个不同脚本的两个控制台输出。我想将这些输出相互比较,以在两个输出中找到保守的字母以及它们在输出中的位置。为此,我想做的是,我想将两个控制台输出保存在两个不同的文本文件中,并检查这两个文件中的保留字母及其相对位置。

我走的是正确的道路还是它们可以成为比较输出的另一种选择。如果是,则提供将控制台输出保存在文本文件中的方法。如果否,则提供一些其他准确的方法来比较控制台输出。

【问题讨论】:

标签: c++ text console


【解决方案1】:

您可以使用freopen将控制台输出重定向到文件,然后使用WinMerge等其他软件比较输出结果。

例如:

freopen("output.txt", "w", stdout);

然后你打印到控制台的任何内容,例如使用printf时都会输出到output.txt

【讨论】:

  • 我真的不建议在 C++ 程序中使用 printf、freopen 等来代替 iostream。
【解决方案2】:

您可以从 C++ 程序运行脚本,例如使用 popen(3) 或自定义 exec+fork 取决于您是否需要处理转义序列问题等。

用于写入文件和

稍后阅读。

【讨论】:

    【解决方案3】:

    您不能直接将控制台输出写入文件。您可以做的是修改您的代码,以便每次写入控制台时,您也可以通过 FILE 将相同的输出写入fopen().

    假设您要打印出Output,您可以将其存储在string/char[] 中并将其写入文件。

    【讨论】:

    • 我个人不建议使用 fopen,而是在 C++ 程序中使用适当的 C++ io 流。
    【解决方案4】:

    所以你必须给小费:

    int main()
    {
        std::string A = "Helo";
        freopen("output.txt", "A", stdout);
    
        return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多