Lachy 314 Ответов: 2

Введите код символа unicode и выведите его? С++


Я использую C++ в windows и пытаюсь создать некоторый код, который позволит мне вводить и кодировать символы Unicode, а затем выводить этот символ на консоль. Я хорошо осведомлен о проблемах, связанных с Unicode и консолью, однако это не та проблема, которую я пытаюсь исправить.

Что я уже пробовал:

До сих пор у меня есть некоторый код, который распечатает символ, если дать код перед рукой.
int main()
{

    

    _setmode(_fileno(stdout), _O_WTEXT);
    
    wprintf(L"\u0004"); // A Unicode code should go in there as a variable.



    return 0;
}


Я знаю, как вывести символ, если я введу код в L"\u(числовой код идет сюда)", то, что я ищу, - это способ вставить туда переменный код. Я надеюсь, что это имеет смысл.

2 Ответов

Рейтинг:
2

OriginalGriff

variable это не символ Юникода - это строка из 4 символов.
Вам нужно будет преобразовать его в широкий символ, прежде чем выводить его, и это означает, что вам нужно подумать о том, что представляет собой эта строка: число, значение, шестнадцатеричное значение или что?

На данный момент ваш вопрос практически бессмыслен - вам нужно остановиться и подумать о том, чего вы пытаетесь достичь, а не просто погружаться в код.


Lachy 314

Извините, мой вопрос был недостаточно ясен. Я знаю, как вывести символ, если я введу код в L"\u(числовой код идет сюда)", то, что я ищу, - это способ вставить туда переменный код. Я надеюсь, что это имеет больше смысла.

Рейтинг:
1

Rick York

Это должно сработать

const wchar_t * wstring = L"some wide string";
wprintf( L"%s\n", wstring );
для строки. Для одного персонажа попробуйте это сделать :
wchar_t wideChar = 0x1234;
wprintf( L"hex: %04X  char: %c\n", wideChar, wideChar );