VSCode学习C语言编程,运行时默认在下面的terminal控制台输出,窗口较小,内容稍多会有一定不便。
一、如果要在单独弹出的终端窗口中运行,需要进行配置,方法是修改将launch.json文件中参数,该文件通常在对应项目目录的.vscode下面。网上大多是说将"externalConsole"设置为true,实测不行。查阅资料后发现正确的新的参数应该是"console",参数可以选择"internalConsole"和 "externalTerminal",分别表示内置终端控制台还是外部终端弹出窗口,把这里设置成"externalTerminal",同时把"type"参数设置为"cppvsdbg",就可以了。
修改之后的参数如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++ Runner: Debug Session",
"preLaunchTask": "g++.exe build active file",//调试前执行的任务,就是之前配置的tasks.json中的label字段
"type": "cppvsdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"console": "externalTerminal",
"cwd": "${workspaceFolder}",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\CodeBlocks\\MinGW\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
配置完成后,如果想在内置的终端面板中运行,可以通过右上角的菜单运行和调试。
如果想在弹出的终端窗口中运行,可以通过快捷键或者菜单选择运行或者调试菜单:
F5(启动调试):Debugging模式
Ctrl+F5(开始执行,不调试):Start Without Debugging模式
二、闪退,即在弹出窗口运行完成后窗口会自动关闭,按上面的方法配置后就不会闪退了,会提示“按任意键继续....”。
当然最简单的办法也可以在源代码中return 0;语句的前面加下一个getchar();。
三、弹出窗口中中文显示乱码
我遇到的情况是在内置终端面板运行中文显示正常,但是在弹出窗口中就是乱码:
原因是VSCode默认中文编码是UTF-8,而windows中文版终端默认是GBK,二者不一致导致乱码 。
解决办法:
方法一:在windows11中打开 设置->时间和语言->语言和区域->管理语言和设置->更改系统区域设备,勾选下面的框,确定 ,这样就把windows终端显示编码改成了UTF-8,此时显示正常。但这种方法有可能导致使用GBK其他的应用程序出现异常或乱码,就需要升级或更换相应的软件。
也可以通过 控制面板->区域 打开相应的设备页面:
可以看到乱码问题解决了:
方法二:修改VSCode的编码设置为GBK:
Files——>Preferences——>setting——>在搜索框输入encoding——>Files:Encoding ——> Simplified Chinese (GBk)。
不过如果之前使用UTF-8保存的文件,需要按新的编码重新打开或以新的编码保存,否则直接打开后显示乱码。具体操作是点击下面状态栏里面的编码格式后在弹出的选项里选择相应功能。
方法三:直接修改task.json文件中运行输出的编码格式,如果习惯使用windows终端,则改成GBK,即把下图中红色框内的内容插入到相应位置并保存。如果习惯使用VSCode内置终端则不用修改。
方法四:下载插件C/C++ Compile Run extension并配置,具体方法我没使用,有兴趣的可以配置。