close
Пространства имён
Варианты
Действия

std::btowc

Материал из cppreference.com
 
 
 
Многобайтовые строки с завершающим нулём
Широкие/многобайтовые преобразования
Типы
 
<tbody> </tbody>
Определено в заголовочном файле <cwchar>
std::wint_t btowc( int c );

Расширяет однобайтовый символ c до эквивалентного широкого символа.

Большинство кодировок многобайтовых символов используют однобайтовые коды для представления символов из набора символов ASCII. Эту функцию можно использовать для преобразования таких символов в wchar_t.

Параметры

c однобайтовый символ для расширения

Возвращаемое значение

WEOF, если c равно EOF.

Представление расширенного символа c, если (unsigned char)c является допустимым однобайтовым символом в исходном состоянии сдвига, WEOF иначе.

Пример

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

void try_widen(char c)
{
    std::wint_t w = std::btowc(c);
    if (w != WEOF)
        std::cout << "Однобайтовый символ " << +(unsigned char)c
                  << " расширяется до " << +w << '\n';
    else
        std::cout << "Однобайтовый символ " << +(unsigned char)c
                  << " не удалось расширить\n";
}

int main()
{
    std::setlocale(LC_ALL, "lt_LT.iso88594");
    std::cout << std::hex << std::showbase << "В литовской локали ISO-8859-4:\n";
    try_widen('A');
    try_widen('\xdf'); // Немецкая буква ß (U+00df) в ISO-8859-4
    try_widen('\xf9'); // Литовская буква ų (U+0173) в ISO-8859-4

    std::setlocale(LC_ALL, "lt_LT.utf8");
    std::cout << "В литовской локали UTF-8:\n";
    try_widen('A');
    try_widen('\xdf');
    try_widen('\xf9');
}

Возможный вывод:

В литовской локали ISO-8859-4:
Однобайтовый символ 0x41 расширяется до 0x41
Однобайтовый символ 0xdf расширяется до 0xdf
Однобайтовый символ 0xf9 расширяется до 0x173
В литовской локали UTF-8:
Однобайтовый символ 0x41 расширяется до 0x41
Однобайтовый символ 0xdf не удалось расширить
Однобайтовый символ 0xf9 не удалось расширить

Смотрите также

сужает широкий символ до однобайтового узкого символа, если это возможно
(функция) [править]
[virtual]
преобразует символ или символы из char в charT
Оригинал:
converts a character or characters from char to charT
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(virtual protected std::ctype функция-элемент) [править]