Невозможно прочитать строки, содержащие →, и распечатать введенные символы Unicode - PullRequest
1 голос
/ 07 августа 2020

Я пишу программу, которая должна работать с символами , и ¬. У меня проблемы с чтением и печатью символов. Это отлично работает:

#include <iostream>
#include <string>
#include <io.h>
#include <fcntl.h>
using namespace std;

int main()
{
    _setmode(_fileno(stdout), _O_U16TEXT);

    wstring func = L"x→y";
    wcout << func;
}

Хотя это не так:

#include <iostream>
#include <string>
#include <io.h>
#include <fcntl.h>
using namespace std;

int main()
{
    _setmode(_fileno(stdout), _O_U16TEXT);

    wstring func;
    wcin >> func;
    wcout << func;
}

Существуют разные проблемы для разных входов. Например, для ввода x↓y вывод будет x[?]y, и если строка содержит , то мне все равно нужно что-то ввести после нажатия клавиши ввода по какой-то причине, а затем все после в первой строке отбрасывается. Итак, для входа

x→y
stuff

на выходе будет x[?]stuff. Было бы неплохо понять, почему происходит странная вещь с , и / или получить какое-то решение по поддержанию ввода и вывода. Я использую Windows 10.

1 Ответ

0 голосов
/ 07 августа 2020

А как насчет кодировки stdin? В некоторых случаях нельзя вводить специальные символы.

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