c++ - 禁用来自外部程序的控制台输出 (C++)

标签 c++ console output

我的代码(一个简单的控制台应用程序)调用一个外部程序(也是一个控制台应用程序)。该程序会向控制台吐出许多内容,这在以批处理模式运行 10,000 多次迭代时显着增加了运行时间。

我尝试了几种方法来禁用输出:

  1. 将 cout 和 cerr 重定向到 fout -> 显然可以在当前/本地程序中禁用 cout,但不会从外部 .exe 中禁用任何内容。

  2. 有些来源建议使用 system("cls"),但它所做的只是在显示文本后清除屏幕。这会增加更多时间。

  3. 另一个建议是隐藏控制台窗口,但程序仍然写入隐藏的控制台,所以整个过程或多或少花费相同的时间。

似乎剩下的唯一方法就是深入挖掘外部程序的源代码并禁用所有写入命令或将其重定向到 dev/null 或其他东西。

有没有一种方法可以在不更改源代码和重新编译的情况下禁用程序对控制台命令的写入?

非常感谢!

最佳答案

system( "theExternalProgram >nul 2>nul" );

关于c++ - 禁用来自外部程序的控制台输出 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26606003/

相关文章:

c++ - 打开CV : count pixel from the left edge of the image

c++ - 体素 block 没有渲染正确的 block ?

c++ - 指针和性能影响?

java - 终止 Java RMI 服务器应用程序

java - 如何让用户选择一个音频文件并用 Java 播放它

c++ - 局部变量和作为参数传递的变量

c++ - 自动将类成员注册到 C++ 中的包含对象

C# .Net 6.0 App 的 Console.WriteLine 在 Linux 上未输出到/bin/bash

python 日志模块向控制台输出额外信息

C 格式的字符串 - 如何将前导零添加到 float 和 int 值?