我正在编写一个必须使用字符↓
、→
和¬
的程序。我在阅读和打印这些字符时遇到了麻烦。这很好:
#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的编码如何?在某些情况下,您无法输入特殊符号。