vscode c++ 使用问题汇总

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: vscode c++ 使用问题汇总

设置显示控制台

想像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.crbtree.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
                },
            ],



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
208 0
|
2月前
|
编译器 C语言 C++
【VS Code】安装配置调试C/C++(一)
【VS Code】安装配置调试C/C++(一)
63 0
|
4天前
|
NoSQL 编译器 C语言
VSCode配置配置C++环境
VSCode配置配置C++环境
17 1
|
7天前
|
C语言 C++
vscode——如何在vscode中运行C/C++
vscode——如何在vscode中运行C/C++
17 1
|
2月前
|
项目管理 C++
【VS Code】安装配置调试C/C++(二)
【VS Code】安装配置调试C/C++(二)
59 1
|
3月前
|
编译器 C语言 C++
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
|
3月前
|
人工智能 NoSQL 机器人
【C++】VS code如何配置使用C++(手把手教学)
【C++】VS code如何配置使用C++(手把手教学)
|
3月前
|
Linux C++
vscode 如何修改c/c++格式化风格,大括号不换行
vscode 如何修改c/c++格式化风格,大括号不换行
|
7天前
|
C++ 容器
C++中自定义结构体或类作为关联容器的键
C++中自定义结构体或类作为关联容器的键
14 0
|
7天前
|
存储 算法 搜索推荐
【C++】类的默认成员函数
【C++】类的默认成员函数