我的代码(一个简单的控制台应用程序)调用一个外部程序(也是一个控制台应用程序)。该程序会向控制台吐出许多内容,这在以批处理模式运行 10,000 多次迭代时显着增加了运行时间。
我尝试了几种方法来禁用输出:
将 cout 和 cerr 重定向到 fout -> 显然可以在当前/本地程序中禁用 cout,但不会从外部 .exe 中禁用任何内容。
有些来源建议使用 system("cls"),但它所做的只是在显示文本后清除屏幕。这会增加更多时间。
另一个建议是隐藏控制台窗口,但程序仍然写入隐藏的控制台,所以整个过程或多或少花费相同的时间。
似乎剩下的唯一方法就是深入挖掘外部程序的源代码并禁用所有写入命令或将其重定向到 dev/null 或其他东西。
有没有一种方法可以在不更改源代码和重新编译的情况下禁用程序对控制台命令的写入?
非常感谢!
最佳答案
system( "theExternalProgram >nul 2>nul" );
关于c++ - 禁用来自外部程序的控制台输出 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26606003/