# fputwc, putwc

< c‎ | io

定义于头文件 `<wchar.h>` |  |
wint_t fputwc( wchar_t ch, FILE *stream ); |  | (C95 起)
wint_t putwc( wchar_t ch, FILE *stream ); |  | (C95 起)

写宽字符 `ch` 到给定的输出流 `stream` 。 putwc() 可以实现为宏并可求值 `stream` 多于一次。

### 参数

ch | - | 要写入的宽字符
stream | - | 输出流

### 返回值

成功时返回 `ch` 的副本。

失败时，返回 WEOF 并设置 `stream` 上的错误指示器（见 ferror() ）。

若出现编码错误，则另外设置 errno 为 `EILSEQ` 。

### 示例

    #include <locale.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <wchar.h>
    #include <errno.h>

    int main(void)
    {
        setlocale(LC_ALL, "en_US.utf8");

        errno = 0;
        if (fputwc(L'🍌', stdout) == WEOF) {
            if (errno == EILSEQ)
                puts("Encoding error in fputwc.");
            else
                puts("I/O error in fputwc.");
            return EXIT_FAILURE;
        }
    }

输出：

    🍌

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.29.3.3 The fputwc function (p: 422-423)

  - 7.29.3.8 The putwc function (p: 424)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.24.3.3 The fputwc function (p: 368)

  - 7.24.3.8 The putwc function (p: 370)

### 参阅

fputc putc | 将一个字符写入文件流 (函数)
fputws (C95) | 将一个宽字符串写入文件流 (函数)
fgetwc getwc (C95) | 从文件流获取一个宽字符 (函数)