Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用sprintf_s从int转换为宽字符串_C_String_Windows_Widestring - Fatal编程技术网

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);