当前位置: 首页>>代码示例>>用法及示例精选>>正文


C++ fwprintf用法及代码示例

C++中的fwprintf()函数用于将格式化的宽字符串写入文件流。

fwprintf()功能在<cwchar>头文件。

fwprintf()原型
int fwprintf( FILE* stream, const wchar_t* format, ... );

fwprintf()函数写入由指向的宽字符串format到文件流stream。宽字符串格式可能包含以%开头的格式说明符,这些格式说明符由作为附加参数传递给fwprintf()函数的变量的值替换。


fwprintf()参数
  • stream:指向写入内容的输出文件流的指针。
  • format:指向写入标准输出的以空终止的宽字符串的指针。它由宽字符以及以%开头的可选格式说明符组成。格式说明符由格式之后的各个变量的值代替。
    格式说明符包括以下部分:
    • 前导%符号
    • 标志:可选的一个或多个标志,用于修改转换行为。
      • -:在字段内左对齐结果。默认情况下,它是正确的。
      • +:结果的符号会附加在值的开头,即使是肯定的结果也是如此。
      • 空格:如果没有符号,则在结果的开头附加一个空格。
      • #:执行另一种形式的转换。
      • 0:用于整数和浮点数。前导零用于填充数字而不是空格。
    • 宽度:可选的*或整数值,用于指定最小宽度字段。
    • 精度:由组成的可选字段。后跟*或整数或什么都不指定精度。
    • 长度:可选的长度修饰符,用于指定参数的大小。
    • 说明符:转换格式说明符。可用的格式说明符如下:
    格式说明符
    格式说明符 描述
    印刷 %
    c 写一个字符
    s 写一个字符串
    d或i 将带符号的整数转换为十进制表示形式
    o 将无符号整数转换为八进制表示形式
    X或x 将无符号整数转换为十六进制表示形式
    u 将无符号整数转换为十进制表示形式
    F或f 将浮点数转换为十进制表示形式
    E或e 将浮点数转换为十进制 index 表示法
    一个或一个 将浮点数转换为十六进制 index
    G或g 将浮点数转换为十进制或十进制 index 表示法
    n 返回到目前为止通过对该函数的调用写入的字符数。结果写入参数所指向的值
    p 编写一个实现定义的字符序列,该序列定义一个指针。
    因此,格式说明符的一般格式为:
    %[flags][width][.precision][length]specifier
  • …:指定要写入数据的其他附加参数。它们根据格式说明符按顺序出现。

fwprintf()返回值
  • 成功后,fwprintf()函数将返回写入的字符数。
  • 失败时,它将返回负值。

示例:fwprintf()功能如何工作
#include <cwchar>
#include <cstdio>
#include <clocale>

int main()
{
	wchar_t hebrew_str[] = L"\u05D0 \u05D1 \u05E1 \u05D3 \u05EA";
	FILE *fp = fopen("example.txt","w");

	setlocale(LC_ALL, "en_US.UTF-8");
	fwprintf(fp, L"Here are some Hebrew letters: %ls", hebrew_str);
	fclose(fp);

	return 0;
}

当您运行该程序时,会将以下内容写入example.txt:

Here are some Hebrew letters: א ב ס ד ת

相关用法

注:本文由纯净天空筛选整理自 C++ fwprintf。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。