无法读取包含→的字符串并打印输入的 unicode 字符



我正在编写一个必须使用字符¬的程序。我在阅读和打印这些字符时遇到了麻烦。这很好:

#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

输出为CCD_ 8。如果能理解为什么会发生这种奇怪的事情,和/或获得一些维护输入和输出的解决方案,那就太好了。我正在使用Windows 10。

stdin的编码如何?在某些情况下,您无法输入特殊符号。

相关内容

  • 没有找到相关文章

最新更新