vscode c++ 使用问题汇总

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 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
相关文章
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
280 3
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
220 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
5月前
|
编译器 C语言 C++
【VS Code】安装配置调试C/C++(一)
【VS Code】安装配置调试C/C++(一)
99 0
|
3月前
|
编解码 编译器 C++
VS Code C/C++ MSVC编译器
VS Code C/C++ MSVC编译器
70 2
|
3月前
|
NoSQL 编译器 C语言
VSCode配置配置C++环境
VSCode配置配置C++环境
98 1
|
3月前
|
C语言 C++
vscode——如何在vscode中运行C/C++
vscode——如何在vscode中运行C/C++
54 1
|
3月前
|
编译器 C++
VS Code设置C++编译器路径
VS Code设置C++编译器路径
50 0
|
5月前
|
项目管理 C++
【VS Code】安装配置调试C/C++(二)
【VS Code】安装配置调试C/C++(二)
91 1
|
6月前
|
编译器 C语言 C++
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
|
9天前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
37 4