函数
<cwchar>

putwc

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

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

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

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

putwcfputwc 等效,不同之处在于putwc在某些库中可能实现为宏。请参阅 putwchar,这是一个直接写入 stdout 的类似函数。

这是 putc (位于 <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)
      putwc ( wc , pFile );

    fclose (pFile);
  }
  return 0;
}

另见