Как я могу хранить специальные символы Юникода в переменной char (c ++) - PullRequest
1 голос
/ 08 апреля 2020

Я пишу программу на C ++, в которой мне нужно сохранить значение специального символа ASCII (например: - '①', '╳', '▲', et c. ) в символьной переменной, например:

#include <iostream>
using namespace std;

int main(void)
{
    char a = '①';//here...
    cout << a;

    return 0;
}

... и выдает ошибки, говорящие

warning: multi-character character constant [-Wmultichar]

и

warning: overflow in implicit constant conversion [-Woverflow]

Есть ли способ сделать это ???

1 Ответ

0 голосов
/ 08 апреля 2020

Вы должны использовать тип данных широких символов, поскольку он может хранить как символы ASCII, так и не-ASCII символы в C ++, который представлен wchar_t.

#include<iostream>
using namespace std;

int main()
{
    wchar_t a = L'?';
    wcout << a;
    return 0;
}

Как показано выше, смайлик сохраняется в a. Поскольку для отображения на консоли используются широкие символы, я должен использовать std::wcout. Аналогично, std::wcin - это альтернатива широким символам для std::cin и std::wstring для std::string.

Префикс L используется для представления широких символов и широких строк. Здесь он используется для указания компилятору, что ? является широким символом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...