C++ 中的swprintf() 函数用于将格式化的宽字符串写入宽字符串缓冲区。
swprintf() 函数在<cwchar> 头文件中定义。
swprintf()原型
int swprintf( wchar_t* buffer, size_t size, const wchar_t* format, ... );
swprintf() 函数将 format 指向的宽字符串写入缓冲区。可写入的最大字符数为 (size-1)。
写入字符后,将添加一个终止的空宽字符。
宽字符串格式可能包含以 % 开头的格式说明符,这些说明符被作为附加参数传递给 swprintf() 函数的变量值替换。
参数:
buffer
:指向要写入结果的字符串缓冲区的指针。size
:指定要写入大小为 1 的缓冲区的最大字符数。format
:指向写入标准输出的空终止宽字符串的指针。它由宽字符以及以 % 开头的可选格式说明符组成。格式说明符由遵循格式的各个变量的值替换。
格式说明符包含以下部分:- 前导 % 符号
- 标志:可选的一个或多个标志,用于修改转换行为。
- -:左对齐字段内的结果。默认情况下它是右对齐的。
- +:结果的符号附加到值的开头,即使是正面结果也是如此。
- 空格:如果没有符号,则在结果的开头附加一个空格。
- #:执行另一种形式的转换。
- 0:用于整数和浮点数。前导零用于填充数字而不是空格。
- 宽度:可选的 * 或整数值,用于指定最小宽度字段。
- 精度:一个可选字段,由 .后跟 * 或整数或不指定精度。
- 长度:一个可选的长度修饰符,指定参数的大小。
- 说明符:转换格式说明符。可用的格式说明符如下:
格式说明符 格式说明符 说明 % 印刷 % c 写入单个字符 s 写入一个字符串 d 或 i 将有符号整数转换为十进制表示 o 将无符号整数转换为八进制表示 X 或 x 将无符号整数转换为十六进制表示 u 将无符号整数转换为十进制表示 F 或 f 将浮点数转换为十进制表示 E 或 e 将浮点数转换为十进制 index 表示法 一个或一个 将浮点数转换为十六进制 index 克或克 将浮点数转换为十进制或十进制 index 表示法 n 返回到目前为止此函数调用写入的字符数。结果写入参数指向的值 p 编写定义指针的实现定义的字符序列。
所以格式说明符的一般格式是:%[flags][width][.precision][length]specifier
- …:指定要写入的数据的其他附加参数。它们根据格式说明符按顺序出现。
返回:
- 成功时,swprintf() 函数返回写入的字符数,不包括终止的空宽字符。
- 如果发生编码错误或要生成的字符数等于或大于 size,则返回负值。
示例:swprintf() 函数如何工作?
#include <cwchar>
#include <cstdio>
#include <clocale>
#include <iostream>
using namespace std;
int main()
{
wchar_t hebrew_str[] = L"\u05D0 \u05D1 \u05E1 \u05D3 \u05EA";
wchar_t buffer[100];
setlocale(LC_ALL, "en_US.UTF-8");
swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str);
wcout << L"Some hebrew letters\n" << buffer << endl;
return 0;
}
运行程序时,以下内容将写入 example.txt:
Some hebrew letters א ב ס ד ת
相关用法
- C++ swscanf()用法及代码示例
- C++ swap()用法及代码示例
- C++ std::max()用法及代码示例
- C++ std::string::push_back()用法及代码示例
- C++ std::less_equal用法及代码示例
- C++ set rbegin()用法及代码示例
- C++ string::length()用法及代码示例
- C++ set upper_bound()用法及代码示例
- C++ set crbegin用法及代码示例
- C++ std::is_member_object_pointer模板用法及代码示例
- C++ std::copy_n()用法及代码示例
- C++ std::string::insert()用法及代码示例
- C++ std::is_sorted_until用法及代码示例
- C++ std::iota用法及代码示例
- C++ set size用法及代码示例
- C++ std::numeric_limits::digits用法及代码示例
- C++ sscanf()用法及代码示例
- C++ std::string::data()用法及代码示例
- C++ smatch max_size()用法及代码示例
- C++ std::is_permutation用法及代码示例
注:本文由纯净天空筛选整理自 C++ swprintf()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。