[ Web Proxy ]
URL:
Viewing: https://ru.cppreference.com/cpp/string/multibyte/wcrtomb [Back]  [Original]

std::wcrtomb cppreference.com
cppreference.com

std::wcrtomb

cppreference.com
<tbody> </tbody>
std::size_t wcrtomb( char* s, wchar_t wc, std::mbstate_t* ps );

.

s , , wc ( *ps) , s, *ps . MB_CUR_MAX .

s , std::wcrtomb(buf, L'\0', ps) buf .

wc L'\0', , , , *ps .

s ,
wc
ps ,

( ), , s.

( wc ), static_cast<std::size_t>(-1), EILSEQ errno *ps .

#include <clocale>
#include <cwchar>
#include <iostream>
#include <string>

void print_wide(const std::wstring& wstr)
{
    std::mbstate_t state{};
    for (wchar_t wc : wstr)
    {
        std::string mb(MB_CUR_MAX, '\0');
        std::size_t ret = std::wcrtomb(&mb[0], wc, &state);
        std::cout << "  " << mb << "  " << ret << " \n";
    }
}

int main()
{
    std::setlocale(LC_ALL, "en_US.utf8");
    std::wstring wstr = L"z\u00df\u6c34\U0001f34c"; //  L"z"
    print_wide(wstr);
}

:

  z  1 
    2 
    3 
    4 


() []

() []
[virtual]
internT externT, ,
:
converts a string from internT to externT, such as when writing to file
Google.
. .

(virtual protected std::codecvt -) []
C wcrtomb

Web Proxy Viewer  |  New URL  |  Original Page