函数
<cwchar>

fputwc

wint_t fputwc (wchar_t wc, FILE * stream);
将宽字符写入流
将宽字符 wc 写入 stream 并前进位置指示器。

由于宽字符在外部文件中以多字节字符表示,该函数可能需要向文件写入多个字节,如同调用 wcrtomb 使用 stream 的内部 mbstate_t 对象来转换 wc

如果宽字符无法使用多字节编码表示,则函数返回 WEOF 并设置EILSEQ设置为 errno 的值。

如果发生写入错误,则函数返回 WEOF 并设置流的 错误指示符ferror)。

fputwcputwc 等效,不同之处在于 putwc 在某些库中可能实现为宏。

这是 fputc<cstdio>)的 宽字符 等效项。

参数

wc
要写入的宽字符。
stream
指向一个 FILE 对象的指针,该对象标识一个输出流。
该流不应有任何朝向,或应是宽字符朝向的(对流的第一个 I/O 操作决定了它是字节朝向还是宽字符朝向,请参阅 fwide)。

返回值

成功时,返回写入的字符(wc 被提升为 wint_t 类型的值)。
返回类型为 wint_t,以容纳特殊值 WEOF,该值表示失败
如果宽字符无法被解释为有效的多字节字符,函数将返回 WEOF 并将 errno 设置为EILSEQ.
如果发生写入错误,函数也会返回 WEOF 并设置错误指示符 (ferror)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* fputwc example */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  wchar_t wc;

  pFile = fopen ("example.txt","w");
  if (pFile!=NULL) {

    for (wc = L'A' ; wc <= L'Z' ; ++wc)
      fputwc ( wc , pFile );

    fclose (pFile);
  }
  return 0;
}

另见