当前位置:   article > 正文

配置VSCode 不闪退 不乱码的C语言外部控制台——傻瓜式操作指南_vscode运行c语言控制台输出

vscode运行c语言控制台输出


根据本文步骤操作,复制本文的launch.json文件后,可实现不闪退的外部控制台输出。设置编码方式后,可消除中文乱码问题


目录

一、 不闪退的外部控制台输出

二、 消除中文乱码

解决方案一:修改CMD编码方式为UTF-8

UTF-8测试用例test.c 

 解决方案二:修改VSCode的编码方式为GBK

GBK测试用例testGBK.c

GBK测试用例test.c


一、 不闪退的外部控制台输出

1. 在任意空文件夹里,创建test.c文件

  1. //test.c
  2. #include <stdio.h>
  3. int main () {
  4. printf("Hello world!\n你好!\n");
  5. return 0;
  6. }

 2. 点击调试后,选择gcc.exe

 3. 产生了tasks.json文件。确认自己在test.c页面,而不是task.json页面,然后点击左侧的“运行和调试”

 4. 点击“创建launch.json”,然后选择C++(GDB/LLDB) 

  5. 成功创建“launch.json”

6. 把launch.json的内容,替换为下面的代码,然后修改miDebuggerPath项的路径为自己的gdb.exe路径。

  1. {
  2. // 使用 IntelliSense 了解相关属性。
  3. // 悬停以查看现有属性的描述。
  4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [
  7. {
  8. "name": "(gdb) 启动",
  9. "type": "cppdbg",
  10. "request": "launch",
  11. "program": "C:\\Windows\\system32\\cmd.exe",
  12. "args": [
  13. "/C",
  14. "${fileDirname}\\${fileBasenameNoExtension}.exe",
  15. "&",
  16. "pause"
  17. ],
  18. "stopAtEntry": false,
  19. "cwd": "${fileDirname}",
  20. "environment": [],
  21. "externalConsole": true,
  22. "MIMode": "gdb",
  23. "miDebuggerPath": "D:\\Program Files\\TDM-GCC-64\\bin\\gdb.exe",//把这个路径改成自己电脑的gdb.exe路径
  24. "setupCommands": [
  25. {
  26. "description": "为 gdb 启用整齐打印",
  27. "text": "-enable-pretty-printing",
  28. "ignoreFailures": true
  29. },
  30. {
  31. "description": "将反汇编风格设置为 Intel",
  32. "text": "-gdb-set disassembly-flavor intel",
  33. "ignoreFailures": true
  34. }
  35. ],
  36. "preLaunchTask": "C/C++: gcc.exe 生成活动文件"
  37. }
  38. ]
  39. }

不知道gdb.exe路径的,打开tasks.json,可以看到command的路径如下:

复制tasks.json的command路径,把gcc改成gdb,粘贴到miDebuggerPath上

 7. tasks.json文件没改过,代码如下供参考:

注意,command的路径应该是自己电脑的gcc.exe的路径

  1. {
  2. "tasks": [
  3. {
  4. "type": "cppbuild",
  5. "label": "C/C++: gcc.exe 生成活动文件",
  6. "command": "D:\\Program Files\\TDM-GCC-64\\bin\\gcc.exe",
  7. "args": [
  8. "-fdiagnostics-color=always",
  9. "-g",
  10. "${file}",
  11. "-o",
  12. "${fileDirname}\\${fileBasenameNoExtension}.exe"
  13. ],
  14. "options": {
  15. "cwd": "${fileDirname}"
  16. },
  17. "problemMatcher": [
  18. "$gcc"
  19. ],
  20. "group": {
  21. "kind": "build",
  22. "isDefault": true
  23. },
  24. "detail": "调试器生成的任务。"
  25. }
  26. ],
  27. "version": "2.0.0"
  28. }


二、 消除中文乱码

点击调试,外部控制台的中文内容如果没有乱码,后面的就不用看了。

如果中文显示有乱码,说明电脑控制台用的编码方式和vscode不一致。一般vscode默认是UTF8,电脑默认是GBK。这种情况下VSCode调试代码,外部控制台调出成功,但是有中文乱码


解决方案一:修改CMD编码方式为UTF-8

1. win键+R,输入regedit,确定

 2. 在地址栏输入

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

3. 右键→新建→字符串值→名称填“autorun

 4. 右键“autorun”→选择“修改”→填入“chcp 65001>nul”→确定


UTF-8测试用例test.c 

此时用VSCode运行test.c,中文不乱码,成功!


解决方案二:修改VSCode的编码方式为GBK

1. 打开VScode,按 Ctrl+Shift+P 

 2. 在输入框中输入 user ,点击“打开用户设置”:

 3. 在设置的输入框输入“encoding”,把“Files:Encoding”选项的UTF-8改成GBK


GBK测试用例testGBK.c

 此时VSCode的默认编码方式已经是GBK了,创建新文件testGBK.c

  1. //testGBK.c
  2. #include <stdio.h>
  3. int main () {
  4. printf("VSCode用GBK,外部控制台用GBK,还乱码吗?\n");
  5. return 0;
  6. }

 此时用VSCode运行testGBK.c,中文不乱码,成功!


GBK测试用例test.c

但是原来的test.c文件仍然是UTF-8编码的,点击右下角的“UTF-8”,点击“通过编码重新打开”,选择GBK

 重新编码后,原来代码部分的中文“你好”乱码了,把它改回“你好”

此时用VSCode运行test.c,中文不乱码,成功!


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/770897
推荐阅读
相关标签
  

闽ICP备14008679号