gpt4 book ai didi

C++:LPWSTR 在 cout 中打印为地址

转载 作者:行者123 更新时间:2023-12-02 15:33:09 25 4
gpt4 key购买 nike

我有一个 LPTSTR 类型的变量,我将其打印到 std::cout<< 。在 ANSI 系统中(不知道它是在哪里确定的)它工作得很好,它打印了字符串。现在,在 Unicode 系统中,我得到的是十六进制地址而不是字符串。那么,为什么 LPSTR (如果 LPTSTR 未定义,则将解析为 UNICODE)LPWSTR 的行为不同(... if UNICODE 已定义) 以及如何打印后一个指向的字符串?

最佳答案

对于 Unicode 字符串,您需要 wcout

您可能会看到十六进制,因为 ANSI/ASCII 输出流不知道如何处理 Unicode 字符。

LPTSTRLPWSTR 实际上是从 C Windows API 时代继承的 C 主义。对于 C++,我强烈建议您使用 std::string 和/或 std::wstring 来代替。

如果您需要推出自己的宏,您将需要如下内容:

#ifdef _UNICODE
std::wostream& COUT = std::wcout;
#else
std::ostream& COUT = std::cout;
#endif

关于C++:LPWSTR 在 cout 中打印为地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com