是否可以重载 wcout <<运算符以将其替换为 WriteConsoleW?

is it possible to overload wcout << operator to substitute it with WriteConsoleW?

本文关键字:lt 替换 WriteConsoleW 运算符 wcout 是否 重载      更新时间:2023-10-16

问题是MinGW编译的程序在通过wcout在控制台上打印非ASCII字符时存在问题,输出可能会显示来自不同代码页的字符或完全空白。但是winapi WriteConsoleW工作得很好。所以我问是否有可能改变<<运算符的行为,以便它不再调用 winapi 方法。

(我没有找到任何示例如何做到这一点,而且我是 c++ 的新手,有很多示例如何重载对象,但没有如何使用字符串或宽字符数组来重载

您可以创建一个合适的流缓冲区,将字符发送到需要发送到的任何位置。您可以使用rdbuf()来设置std::wcout使用的流缓冲区。我认为我过去没有提供过使用 wchar_t 作为字符类型的示例,但它可以作为 char 的大量示例工作。