在 PowerShell ISE 中运行控制台程序时,我遇到了一个小问题:当程序使用 flush 分部分写出一行时,PowerShell 不会显示该行,直到程序写出行结尾。例如,程序正在执行类似以下操作(C++):
std::cout << "Doing something time-consuming..." << std::flush;
// Do something for some time
std::cout << " done in " << x << " seconds" << std::endl;
并且 PowerShell ISE 仅在此部分代码完成时才显示整行。使用非 ISE PowerShell 不会发生这种情况,该行将按预期分部分打印。
所以问题是:我能否以某种方式让 PowerShell ISE 禁用其内部缓冲区并直接打印程序的标准输出?