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.


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.


#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"
        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

writes a character to a file stream
writes a wide string to a file stream
gets a wide character from a file stream
C documentation for fputwc

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.