我的代码(一个简单的控制台应用程序)调用外部程序(也是一个控制台应用程序)。这个程序向控制台吐出很多东西,当批量模式运行10,000次迭代时,这会大大增加运行时间。
我尝试了几种方法来禁用输出:
将cout和cerr重定向到fout - >显然可以在当前/本地程序中禁用couts,但不能禁用外部.exe中的任何内容。
有些消息来源建议系统(" cls"),但所有这一切都在文本显示后清除屏幕。这会增加更多时间。
另一个建议是隐藏控制台窗口,但程序仍会写入隐藏的控制台,因此整个过程仍然需要或多或少的时间。
似乎剩下的唯一方法就是挖掘外部程序的源代码并禁用所有写命令或将其重定向到dev / null或其他东西。
有没有办法禁用程序写入控制台命令而无需更改源代码并重新编译?
非常感谢!
答案 0 :(得分:1)
system( "theExternalProgram >nul 2>nul" );