我遇到了一个越来越令人沮丧的问题,因为我似乎无法打印 unicode 字符(在这种情况下,一些盲文点),将其换行并输入更多盲文点。几个小时以来,我一直在寻找答案,但我已经束手无策了。
我尝试过更改我的 Unicode 字符的格式,更改位置,更改顺序,使用多个 fstream,一个宽一个正常,并使用无数不同的假定 unicode 换行符转义序列。这重复的次数与一行中有多少个字符一样多。在每一行的末尾,它需要在末尾有一个结束线。
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 和从 U16 切换,因为程序的其他部分使用文本模式。如果这是一个问题,我可以解决它。当我尝试使用
wout << "\n";
在每一行的末尾,它会将输出更改为半盲文字符,就像我期望的那样,半胡言乱语,例如“*૾H૾H૾H૾H૾H૾H૾H૾H૾H”。当我删除与打印盲文字符有关的任何部分时,它可以很好地打印换行符。我不知所措。