# std::fputwc

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

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

Writes a wide character ch to the given output stream stream.

2) 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 <cerrno>
    #include <clocale>
    #include <cstdio>
    #include <cstdlib>
    #include <cwchar>
    #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'∀',
        })
        {
            if (errno = 0; 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

fputcputc | writes a character to a file stream (function)
fputws | writes a wide string to a file stream (function)
fgetwcgetwc | gets a wide character from a file stream (function)
C documentation for fputwc

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