swprintf是一个函数,功能为把格式化的数据写到一个流中。
swprintf是一个函数,功能为把格式化的数据写到一个流中。
该函数原型有两个:
ISO标准函数原型
#include <wchar.h>int swprintf(wchar_t *buffer, size_t count, const wchar_t *format, ...);
Windows函数原型
#include <wchar.h>int swprintf(wchar_t *buffer, const wchar_t *format, ...);
由于sprintf只能输出字符,字符串和整型数据,要输出任意类型应该用swprintf 。
// crt_swprintf.c
// wide character example
// also demonstrates swprintf returning error code
#include <stdio.h>
int main( void )
{
wchar_t buf;
int len = swprintf( buf, L"%s", L"Hello world" );
printf( "wrote %d charactersn", len );
len = swprintf( buf, L"%s", L"Helloxffff world" );
// swprintf fails because string contains WEOF (xffff)
printf( "wrote %d charactersn", len );
}
因为历史原因,使得 sprintf 和 swprintf 的参数格式不尽一致,所以,如果使用 _stprintf 时实现 ANSI 和 Unicode 双版本编程时,当指定使用 C99 以上标准编译 Unicode 版本时,通常会警告 swprintf 出错,此时可更换使用 snwprintf 代替(注意参数也要调整),即使用 _sntprintf 代替 _stprintf 实现功能。如果代码中已包含大量的 _stprintf 或 swprintf,就只能使用宏替换或自己实现。