gpt4 book ai didi

c++ - 如何在 Microsoft C++ 中打印其他语言字符?

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:15 26 4
gpt4 key购买 nike

我们可以通过放置“%c”来打印任何带有日志的英文字符。再举一个例子。键盘布局已更改。现在我的输入是一些韩语/中文。我们不能简单地将“%c”放在日志中来打印这些字符。

我们怎样才能做到这一点?

最佳答案

你是如何写入日志的?如果是 printf,我建议切换到 wprintf,并确保您的键盘输入被读入 wchar_t。然后你可以使用 %lc 打印出你的角色。

唯一的小毛病是,有些汉字甚至不能放入单个 wchar_t(Unicode 字符 U+10000 及以上的字符)。对于那些,您将必须读入 wchar_t 数组(或 std::wstring)并使用 %ls 打印。

注意:该标准实际上并没有指定 wchar_t 有多大,在 Unix 平台上,wchar_t 通常为 32 位,因此它可以将任何单个 Unicode 代码点保存为单个 UTC-4 值。 Windows-NT 是在 65536 个字符明显不够用之前开发的,因此 API 采用 UTC-2 字符。当 Unicode 扩展到一百万个字符时,改变 API 接受的字符的大小太具有破坏性,因此将它们转换为接受 UTF-16。对于与这些 API 的接口(interface),Windows 平台上的 wchar_t 通常是 UTF-16 值。

当然,即使 wchar_t 对于一个代码点来说足够大,但当一个“字符”占用多个代码点时,这也无济于事。例如 U+005A LATIN CAPITAL LETTER Z & U+0303 COMBINING TILDE == Z̃ (我不知道是否有一种语言将它用作字符,但似乎没有它的组合形式。)

关于c++ - 如何在 Microsoft C++ 中打印其他语言字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34409496/

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