# std::fputwc

From cppreference.com
< cpp‎ | io‎ | c

Defined in header `<cwchar>` |  |
std::wint_t fputwc( wchar_t ch, std::FILE* stream ); |  |
std::wint_t putwc( wchar_t ch, std::FILE* stream ); |  |

Writes a wide character `ch` to the given output stream `stream`. `putwc()` may be implemented as a macro and may evaluate `stream` more than once.

### Parameters

ch | - | wide character to be written
stream | - | the output stream

### Return value

`ch` on success, WEOF on failure. If an encoding error occurs, errno is set to EILSEQ.

### Example

Run this code

    #include <clocale>
    #include <cstdio>
    #include <cstdlib>
    #include <cwchar>
    #include <cerrno>
    #include <initializer_list>

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

        for (const wchar_t ch :{
            L'\u2200', // Unicode name: "FOR ALL"
            L'\n',
            L'∀',
        })
        {
            errno = 0;
            if (std::fputwc(ch, stdout) == WEOF)
            {
                std::puts(errno == EILSEQ
                    ? "Encoding error in fputwc"
                    : "I/O error in fputwc"
                );
                return EXIT_FAILURE;
            }
        }
        return EXIT_SUCCESS;
    }

Possible output:

    ∀
    ∀

### See also

fputc putc | writes a character to a file stream (function)
fputws | writes a wide string to a file stream (function)
fgetwc getwc | gets a wide character from a file stream (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/fputwc&oldid=145316"