gpt4 book ai didi

c - 如何在 C 中打印 wchar_t 变量

转载 作者:行者123 更新时间:2023-11-30 18:33:20 25 4
gpt4 key购买 nike

我正在调试我们公司编写的一些旧 C 代码。函数是这样的——

uint32
ExecuteCommand(wchar_t *dnsName, // IN
wchar_t *dnsUser, // IN
PNameValue *nameValues, // OUT
size_t *valuesSize) // OUT
{
....

要调试此问题,我需要检查传递到此函数的 dnsUser 和 dnsName 的值。我尝试了以下选项 -

    Util_Log(L"Printing the userName %S", dnsUser);
Util_Log(L"Printing the userName ", dnsUser);
Util_Log(L"Printing the userName %ls", dnsUser);
Util_Log(L"Printing the userName %lS",dnsUser);

Util_Log 是我们公司使用的专有日志记录 API。但是,上述方法均不起作用,并且用户名在生成的日志中以某种乱码形式打印。我尝试使用 printf 和 wprintf 但没有在日志中打印任何内容 -

  printf("Printing the userName %S",userName);
wprintf("Printing the userName %lS %S", userName);

补充一下:下面是 SimCfg_Log API 的签名。

void
Util_Log(const wchar_t *fmt, // IN
...) // IN

在方法中打印 wchar_t 参数的正确方法是什么?另外,知道为什么使用 printf 和 wprintf 不在日志中打印任何内容吗?

最佳答案

我的心灵力量表明这就是你需要做的:

Util_Log(L"Printing the userName %s", dnsUser);

我的心灵力量得到了两个提示的帮助:

第一个提示是 Util_Log 的第一个参数是宽字符 (L"") 字符串。因此,格式说明符 %s, 也会被解释为宽字符字符串。

第二个提示是,这是您没有提到的唯一格式说明符,因为您已经尝试过。 ;)

关于c - 如何在 C 中打印 wchar_t 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58073842/

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