设置显示控制台
想像VS studio一样展示控制台,如下这种界面
可以将 .vscode->launch.json中的
这里默认为fasle,改成true
"externalConsole": true,
窗口中可能不会展示中文
运行cout<<“中文”<
选择右下角的utf-8
选择第二行的 通过编码保存
选择GBK
就可以显示中文了
但是这样每次创建一个新的cpp后都要重新设置,非常麻烦
可以在设置中 搜索encoding,将 下图中 设置为GBK即可。这样每次创建的编码都是GBK了。
设置初始化模板
每次都要重复固定输入#include… int main()…十分麻烦,可以使用初始化模板,可以简化我们的操作
文件–>首选项—>用户片段
然后选择c++
可以看到一个cpp,json的窗口
把它修改成如下
{ // Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the // same ids are connected. // Example: "Print to console": { "prefix": "ccc", "body": [ "#include<iostream>", "using namespace std;\n\n", "int main(){", "\t$1$2\n\n\n", "\tsystem(\"pause\");", "\treturn 0;", "}" ], "description": "Log output to console" } }
只要在cpp文件中,输入ccc就可以快速出现以下的代码
#include<iostream> using namespace std; int main(){ system("pause"); return 0; }
设置生成exe路径
在运行程序的时候,会自动生成exe文件,默认在运行目录下,看起来十分不舒服
于是可以把他放在一个指定的目录下,会舒服点
可以看到.vscode目录下有3个配置文件
假如想在运行目录下创建一个exeFile的文件夹,把所有的exe文件全部放在里面
1,首先在当前目录创建一个名为exeFile的文件夹
2.在task.json中修改 生成的exe文件的目录
-o
下面一行表示编译生成的exe文件路径,把原来的那行注释掉,改成新的路径
{ // "${fileDirname}\\${fileBasenameNoExtension}.exe" "${fileDirname}\\exeFile\\${fileBasenameNoExtension}.exe"
3.在launch.json中修改 运行的exe文件路径
也就是program这行
注意:要和之前的编译生成的exe目录相同,否则会找不到exe文件
// "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "program": "${fileDirname}\\exeFile\\${fileBasenameNoExtension}.exe"
均设置完成后,按F5点击运行该目录下的cpp文件后,生成的exe在指定目录下了,看起来就舒服多了
VSCODE没法查看容器string、vector内部值的问题
Debug时候string类型的变量显示Converting character sets: Invalid argument
在Windows10中,点击“设置”,“时间和语言”,“区域”,“其他日期、时间和区域设置”,“更改日期、时间或数字格式”,“管理”,“更改系统区域设置”,取消勾选“Beta版:使用Unicode UTF-8 提供全球语言支持”,重启电脑
VSCode远程连接Linux
VSCode设置c++11标准
在task.json中
加入 "-std=c++11"
,这样子编译就不会出错了
"args": [ "-fdiagnostics-color=always", "-std=c++11", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ]
能正常生成 和 运行了
但是,在vscode中,它依然不认识c++11新特性的内容,会出现红色的警告。因此为了让编辑器也认识新特性,在左下角齿轮-》设置,输入cpp standard.,将设置为c++11即可
vscode设置c++11或者c++17
ctrl+shift+p, 点击Edit Configurations
选择c++11/17即可
编译单个文件/多个文件
在task.json中
args中 "${file}"
修改为" ${fileDirname}/*"
,就能将单个文件编译修改为编译文件夹下所有文件
编译指定文件
编译文件async.c
和rbtree.c
-L
添加库目录../hiredis
(为了下面库文件的搜索)
-l
添加库文件hiredis
-I
添加头文件./
"args": [ "-fdiagnostics-color=always", "-g", "async.c","rbtree.c", "-o", "async", "-L../hiredis", "-lhiredis", "-I./" ],
VScode的如何启动sudo权限
在vscode中,有时候调试,但没有权限,使用chmod方法,显然是不合理的
vscode中launch.json的配置文件本质上也是在shell中执行的,因此只要在shell中提前开启root权限就行。
在vscode中打开linux终端
输入sudo su
,就进入了root权限。然后按F5就可以执行了程序了
按下ctrl+D,退出root权限
Vscode多进程调试
在launch.json中的setupCommands加入下述内容
表示调试跟随子进程
主进程不会阻塞
"setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "只调试子进程", "text": "set follow-fork-mode child", "ignoreFailures": true }, { "description": "只调试子进程", "text": "set detach-on-fork on", "ignoreFailures": true }, ],