【发布时间】:2014-05-23 05:12:50
【问题描述】:
我想将代码插入到在 Windows 上运行的 C++ 应用程序中,该应用程序可以确定 stdout(或 cout)是否指向控制台,如果是,则在将字符写出之前将其转换为终端编码。如果不是(例如,如果写入文件或管道),则应单独保留字符。转换部分不是问题,但我想知道应用程序是否有可能知道它的标准输出是进入控制台还是其他地方。
我不确定 Windows API 函数 GetStdHandle 是否有任何帮助,或者它是否只是一种指向标准输出但无法确定任何相关信息的方法。同样,我不确定我们是否可以从 cout 获得任何信息来表明它是指向控制台还是其他东西。到目前为止,我还没有找到任何类似的东西。
【问题讨论】: