cuốn sách gpt4 ai đã làm

c++ - 有没有办法确定标准输出是否指向控制台?

In lại Tác giả: Hồ Xil 更新时间:2023-11-01 09:53:35 27 4
mua khóa gpt4 Nike

我想在 Windows 上运行的 C++ 应用程序中插入代码,以确定 stdout(或 cout)是否指向控制台,如果是,则在写出之前将字符转换为终端编码。如果不是(例如,如果写入文件或管道),字符应该单独保留。转换部分不是问题,但我想知道应用程序是否有可能知道它的标准输出是去控制台还是去其他地方。

我不确定 Windows API 函数 GetStdHandle 是否有任何帮助,或者它是否只是一种指向标准输出但无法确定有关它的任何信息的方法。同样,我不确定我们是否可以从 cout 获得任何信息来表明它是指向控制台还是其他东西。到目前为止,我还没有找到任何类似的东西。

câu trả lời hay nhất

在您想了解的句柄上调用 GetConsoleMode ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms683167(v=vs.85).aspx )。如果它被重定向到另一个控制台句柄以外的东西(例如文件),那么 GetConsoleMode 将失败。例如:

DWORD temp;
const BOOL success = GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &temp);
const bool redirected = success == FALSE;

关于c++ - 有没有办法确定标准输出是否指向控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22972071/

27 4 0
Hồ Xil
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress