【发布时间】:2014-10-01 01:28:36
【问题描述】:
使用 Visual Studio 2013 运行的以下代码行:
wchar_t test[] = L"\xffff";
wchar_t buf[100];
int ret = swprintf(&buf[0], 100, L"%ls", &test[0]);
编译成功,但是swprintf 没有输出这个字符(res 为-1)。除了 \xffff 之外的任何其他字符都可以。这个字符可以在字符串的任何位置,swprintf 仍然失败。有什么问题?
【问题讨论】:
-
您需要修复错误。
-
当您询问错误消息时,您需要在问题中包含错误消息的确切文本。
-
如果它包含代码点 U+FFFF,则它不是一个有效的 Unicode 字符串。见Can a valid Unicode string contain FFFF。
-
输出是否保存到一个文件中,这样您就可以对其进行十六进制转储并知道该函数失败/成功输出?或者您正在查看带有文本输出的屏幕 - 在这种情况下,您怎么知道
'\xffff'必须打印可见的内容?