📅  最后修改于: 2020-09-25 09:45:57             🧑  作者: Mango
vswprintf() 函数在
int vswprintf( wchar_t* buffer, size_t buf_size, const wchar_t* format, va_list vlist );
所述vswprintf() 函数将通过格式指向到宽字符串的宽字符串 buffer
。最多将(buf_size-1)
宽字符写入缓冲区,后跟一个空宽字符。
宽字符串 format
可能包含以%开头的格式说明符,这些格式说明符由作为列表vlist
传递的变量的值替换。
#include
#include
#include
void write(wchar_t* buffer, size_t buf_size, const wchar_t *fmt, ...)
{
va_list args;
va_start(args, fmt);
vswprintf(buffer, buf_size, fmt, args);
va_end(args);
}
int main ()
{
wchar_t str[] = L"\u0684 \u06b1 \u06aa \u06a3 \u0684";
wchar_t buffer[50];
setlocale(LC_ALL, "en_US.UTF-8");
write(buffer, 50, L"Arabic Letters: %ls\n", str);
wprintf(L"%ls", buffer);
return 0;
}
运行该程序时,会将以下内容写入example.txt:
Arabic Letters: ڄ ڱ ڪ ڣ ڄ