赞
踩
根据本文步骤操作,复制本文的launch.json文件后,可实现不闪退的外部控制台输出。设置编码方式后,可消除中文乱码问题。
目录
1. 在任意空文件夹里,创建test.c文件
- //test.c
-
- #include <stdio.h>
-
- int main () {
- printf("Hello world!\n你好!\n");
- return 0;
- }
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路径。
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "(gdb) 启动",
- "type": "cppdbg",
- "request": "launch",
- "program": "C:\\Windows\\system32\\cmd.exe",
- "args": [
- "/C",
- "${fileDirname}\\${fileBasenameNoExtension}.exe",
- "&",
- "pause"
- ],
- "stopAtEntry": false,
- "cwd": "${fileDirname}",
- "environment": [],
- "externalConsole": true,
- "MIMode": "gdb",
- "miDebuggerPath": "D:\\Program Files\\TDM-GCC-64\\bin\\gdb.exe",//把这个路径改成自己电脑的gdb.exe路径
- "setupCommands": [
- {
- "description": "为 gdb 启用整齐打印",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- },
- {
- "description": "将反汇编风格设置为 Intel",
- "text": "-gdb-set disassembly-flavor intel",
- "ignoreFailures": true
- }
- ],
- "preLaunchTask": "C/C++: gcc.exe 生成活动文件"
- }
- ]
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
不知道gdb.exe路径的,打开tasks.json,可以看到command的路径如下:
复制tasks.json的command路径,把gcc改成gdb,粘贴到miDebuggerPath上
7. tasks.json文件没改过,代码如下供参考:
注意,command的路径应该是自己电脑的gcc.exe的路径
- {
- "tasks": [
- {
- "type": "cppbuild",
- "label": "C/C++: gcc.exe 生成活动文件",
- "command": "D:\\Program Files\\TDM-GCC-64\\bin\\gcc.exe",
- "args": [
- "-fdiagnostics-color=always",
- "-g",
- "${file}",
- "-o",
- "${fileDirname}\\${fileBasenameNoExtension}.exe"
- ],
- "options": {
- "cwd": "${fileDirname}"
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "detail": "调试器生成的任务。"
- }
- ],
- "version": "2.0.0"
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
点击调试,外部控制台的中文内容如果没有乱码,后面的就不用看了。
如果中文显示有乱码,说明电脑控制台用的编码方式和vscode不一致。一般vscode默认是UTF8,电脑默认是GBK。这种情况下VSCode调试代码,外部控制台调出成功,但是有中文乱码
1. win键+R,输入regedit,确定
2. 在地址栏输入
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
3. 右键→新建→字符串值→名称填“autorun”
4. 右键“autorun”→选择“修改”→填入“chcp 65001>nul”→确定
此时用VSCode运行test.c,中文不乱码,成功!
1. 打开VScode,按 Ctrl+Shift+P
2. 在输入框中输入 user ,点击“打开用户设置”:
3. 在设置的输入框输入“encoding”,把“Files:Encoding”选项的UTF-8改成GBK
此时VSCode的默认编码方式已经是GBK了,创建新文件testGBK.c
- //testGBK.c
-
- #include <stdio.h>
-
- int main () {
- printf("VSCode用GBK,外部控制台用GBK,还乱码吗?\n");
- return 0;
- }
此时用VSCode运行testGBK.c,中文不乱码,成功!
但是原来的test.c文件仍然是UTF-8编码的,点击右下角的“UTF-8”,点击“通过编码重新打开”,选择GBK
重新编码后,原来代码部分的中文“你好”乱码了,把它改回“你好”
此时用VSCode运行test.c,中文不乱码,成功!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。