1. https://coding.imooc.com/learn/questiondetail/226012.html
在上周提问的问题个人感觉问题描述应该比较清晰,使用代码就是跟着老师的笔记一起敲的,如下:
wchar_t zhong = L'中'; wchar_t zhong_hex = L'\u4E2D'; printf("中:%d\n", zhong); printf("中:%d\n", zhong_hex);
在自行百度解决方法之后,在看得懂的技术帖里找到了如下方法:
“CLion中按住Ctrl+Shift+Alt+/选中Registry...,然后取消掉 run.processes.with.pty 后面的√。”
照做后解决了“文件编码为UTF-8,使用Debug-MinGW编译后输出宽字符'中'为乱码”的问题,输出如下:
不过又出现了新的问题。。。
2. 在自己对C语言参考书中代码做练习后发现取消掉 run.processes.with.pty后(备注:取消后须用UTF-8编码,使用GKB会乱码),使用scanf读入数据前无法用printf给提示信息,使用代码如下:
#include <stdio.h> int main() { const int PASS = 60; int score; printf("请输入成绩:"); scanf("%d", &score); printf("你输入的成绩是%d。\n", score); if (score < PASS) { printf("很遗憾,这个成绩没有及格。"); } else { printf("祝贺你,这个成绩及格了。"); } printf("再见\n"); return 0; }
运行后截图:
所以迫于无奈我又把run.processes.with.pty打勾了(我也尝试去百度原因,但是发现这类技术贴已经超出我目前的理解范围了,看不懂。。。),此时正常运行(备注:打勾后需要更改编码为GKB),如下:
3. Debug模式也很离谱
第一是在scanf之前不管对于中文字符串还是英文字符串的printf提示信息都不显示
第二是和控制台相反,GBK编码是乱码,UTF-8正常输出
所以对于不同情况需要来回切换编码,对于字符还需要对设置选择打不打勾。。。
目前学习中对于CLion的问题就发现这么多,我最近才使用windows系统的电脑,还不是很了解,以前一直在用mac系统,在Xcode中运行过C的代码,运行和debug没有出现过类似的乱码和不给提示信息的问题。。。不过我那个MacBook air硬盘和内存都不太够用了,所以现在就上学记笔记看看视频用,暂时也没打算在mac上写代码。。。