У меня все более неприятная проблема: я не могу напечатать символ Юникод (в данном случае некоторые точки Брайля), перевести его на новую строку и ввести больше точек Брайля. Я искал ответы в течение нескольких часов, и я близок к концу.
Я пытался изменить формат символов Юникода, изменить месторасположение, изменить порядок, использовать несколько потоков, один широкий и один нормальный, и использовать бесчисленное множество различных предполагаемых escape-последовательностей Юникода. Это повторяется столько раз, сколько символов в строке. В конце каждой строки должна быть конечная линия в конце.
wout.open((inputstring + "2.txt"), wofstream::binary | wofstream::trunc); //this only happens once
_setmode(_fileno(stdout), _O_U16TEXT);
switch (i) //will be expanded for more cases
{
case (63):
cout << "\xFF\xFE"; // UTF-16 BOM
cout << "\x0A\x28";
}
_setmode(_fileno(stdout), _O_TEXT);
Я использую setmode для переключения на U16 и обратно, потому что другие части программы используют текстовый режим. Если это проблема, я могу обойти это. Когда я пытался использовать
wout << "\n";
в конце каждой строки, он меняет вывод, получая наполовину символы Брайля, как я и ожидал, наполовину бессмысленно, как "* ૾ H ૾ H H ૾ ૾ ૾ H H ૾ H ૾ H H ૾ H". Когда я удаляю какую-либо часть, связанную с печатью символов Брайля, она прекрасно печатает новые строки. Я в недоумении.