C 使用sprintf_s从int转换为宽字符串
我的目标是将C 使用sprintf_s从int转换为宽字符串,c,string,windows,widestring,C,String,Windows,Widestring,我的目标是将int转换为宽字符串,并在其前面加上另一个宽字符串。我目前的解决方案是: #define bufsize 20 char buffer[bufsize]; sprintf_s(buffer,bufsize,"%s%d", "my prefix", 42); wchar_t wbuffer[bufsize]; mbstowcs_s(NULL, wbuffer, buffer, bufsize); 我错误地认为以下方法会起作用: #define bufsize 20 wchar_t b
int
转换为宽字符串,并在其前面加上另一个宽字符串。我目前的解决方案是:
#define bufsize 20
char buffer[bufsize];
sprintf_s(buffer,bufsize,"%s%d", "my prefix", 42);
wchar_t wbuffer[bufsize];
mbstowcs_s(NULL, wbuffer, buffer, bufsize);
我错误地认为以下方法会起作用:
#define bufsize 20
wchar_t buffer[bufsize];
swprintf_s(buffer,bufsize,"%s%d",L"my prefix", 42);
我的解决方案有没有更简洁的版本?我必须进行
int
到char[]
的转换,然后转换到wchar\u t[]
,这似乎是错误的。为什么我不能从int
转换到wchar\u t*
?格式字符串需要L前缀
但是,参数可以是普通字符串,但需要使用
请注意,宏通常具有所有的大写名称,以将它们与变量区分开来
swprintf_s(buffer, bufsize, L"%s%d", L"my prefix", 42);
swprintf_s(buffer, bufsize, L"%S%d", "my prefix", 42);