Home C&C++函数库 c++ 语法 程序源码 Linux C库

wprintf

函数   <cwchar>

int wprintf (const wchar_t* format, ...);

将格式化的数据打印到标准输出

将format指向的C宽字符串写入标准输出(stdout),以与printf相同的方式替换任何格式说明符。

标准输出中,宽字符的外部表示是多字节字符:获取这些多字节字符时, 就好像调用了wcrtomb 来转换每个宽字符(使用流的内部mbstate_t对象)。

这相当于printf (<cstdio>)的宽字符版本。

☲  参数


format
C宽字符串,包含一个格式字符串,该格式字符串遵循与printf格式相同的规范 (有关详细信息,请参阅printf)。

注意,所有格式说明符都具有与printf相同的含义;因此, %lc用于写入宽字符(而不是%c),以及%ls用于宽字符串(而不是%s)。

... (附加参数)
根据格式字符串的不同,函数可能需要一系列附加参数, 每个参数都包含一个用于替换格式字符串中的格式说明符的值(或者一个指向存储位置的指针,对于n)。

这些参数的数量至少应该与格式说明符中指定的值的数量一样多。其他参数被函数忽略。

☉  返回值



如果成功,则返回所写的字符总数。
如果发生写错误,则设置错误指示符(ferror)并返回一个负数。
如果在写入宽字符时发生多字节字符编码错误,则将errno设置为EILSEQ并返回一个负数。

☣  示例



/* wprintf example */
#include <wchar.h>

int main()
{
   wprintf (L"Characters: %lc %lc \n", L'a', 65);
   wprintf (L"Decimals: %d %ld\n", 1977, 650000L);
   wprintf (L"Preceding with blanks: %10d \n", 1977);
   wprintf (L"Preceding with zeros: %010d \n", 1977);
   wprintf (L"Some different radixes: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
   wprintf (L"floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
   wprintf (L"Width trick: %*d \n", 5, 10);
   wprintf (L"%ls \n", L"A wide string");
   return 0;
}

输出:
Characters: a A
Decimals: 1977 650000
Preceding with blanks:       1977
Preceding with zeros: 0000001977
Some different radixes: 100 64 144 0x64 0144
floats: 3.14 +3e+000 3.141600E+000
Width trick:    10
A wide string

🍄  另请参阅



fputws 将宽字符串写入流(function )
wscanf 从stdin读取格式化的数据(function )
fwprintf 将格式化的数据写入流(function )

联系我们 免责声明 关于CandCplus 网站地图