我在进行一些单元测试时遇到了一个问题,以下简单的例子在使用sprintf的那一行崩溃,但我不确定原因是什么。(使用Windows和Visual Studio 2019)
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "en_US.utf8");
char output[255];
sprintf(output, "simple %ls text", L"\u00df\U0001d10b");
return 0;
}
代码有问题吗?
setlocale
的返回值吗? - Andreas Wenzelint n = snprintf(output, 254, "simple %ls text", L"\u00df\U0001d10b");
返回值为12,并将simple ßß
放入字符串中(省略了text
部分)。 - Adrian Mole