最近在CLion中使用**system(“cls”)和system(“pause”)**时发现运行输出时总存在执行错乱,乱码的问题,问题情况如下
问题1
代码执行混乱,不知道它在干什么!
问题2:
调试时system(“pause”)和system(”cls")出现乱码,其中“pause”乱码可以通过在main函数下添加system(“chcp 65001”);解决,但system(“cls”)无法解决,网上找了一堆也没有能解决的有效方法。
解决方案:
方案一(能解决运行但不调试的情况,调试时仍会出现代码,优点:还是使用CLion内置运行界面看着方便,不需要开一个外部终端,如果不调试使用这个即可)
1.使用powershell或cmd终端通过g++指令手动编译运行(这种方法调试应该也可以(有兴趣的可以尝试一下),但我不太习惯,还是有界面的调试看着舒服)
2.使用模拟终端
1.选择运行界面左上角的三个点
2.选择**Modify Run configutation**
3.勾选Emulate terminal in the output console
,然后选择ok保存即可
方案二 (打开外部控制台,跟vs一样,完美解决问题,缺点:看着不方便)
步骤跟方案一第二种差不多,就是最后选择的是Run in external console
如果不出意外的话,应该可以成功打开了一个外部终端
总结:system()函数并不是一个安全函数,尽量别用,原因可以看这个链接Why system() is evil,system(“pause”)可以使用cout.get()代替,system(“cls”)展示找不到能用的代替的,如果哪个兄弟姐妹知道可以在评论区留言,万分感谢!总的来说CLion我还是很喜欢的,虽然在有点小瑕疵,但瑕不掩瑜,这个打开外部终端平时又能使用几次呢!