如题, _getwch函数可以读入中文字符, 在easyx initgraph的窗口中输入就读取不到, 在SHOWCONSOLE的窗口中输入中文就可以读取到, 有解决方案吗?
getwch函数的文档在 https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getch-getwch
如题, _getwch函数可以读入中文字符, 在easyx initgraph的窗口中输入就读取不到, 在SHOWCONSOLE的窗口中输入中文就可以读取到, 有解决方案吗?
getwch函数的文档在 https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getch-getwch
主要是控制台获取中文字符有问题,会“卡”,这个是控制台自身的问题,所以 EasyX 屏蔽掉了。
如果要读取中文输入,在 EasyX 有两个方法:
2. 用 getmessage 获取字符消息,可以得到中文字符。
可以参考这里:https://qa.codebus.cn/question/2082,详细解释了控制台获取中文存在的问题,以及如何正确获取中文。
你的程序入口可能是WinMain,在没有SHOWCONSOLE的情况下无论使用_getch()还是_getwch()都是无效的,MSDN上也有说明
把入口函数改为main并将子系统设为控制台就可以用conio.h里的函数,否则你可能需要用Windows API的接口来实现读入中文字符