C++函数分文件编写之VScode版

VScode实现函数的分文件编写

  • 1.下载插件创建项目
  • 2.分文件编写内容
  • 3.修改主函数文件名

我在分享内容时经常用的软件是VScode,相信有些内存敏感或需要VScode便利性的小伙伴也是更愿意使用VScode。那么接下来我们就盘一盘怎样使用VScode实现分文件编写。

1.下载插件创建项目

首先我们需要下载并安装C/C++ Project Generator插件,安装完成之后我们需要重启VS。
重启之后,我们按照插件的提示选择位置并创建一个C++项目:
在这里插入图片描述
创建后,VS会生成一个这样的项目:
在这里插入图片描述
其中src中有一个main.cpp文件存放的是主函数,这个名字是可以改的,我们后续会讲到。

2.分文件编写内容

创建好项目后,我们就可以开始分文件编写内容了。首先在include文件夹中创建一个.h的头文件,文件的内容如下:

#ifndef PUBLIC_H // 头文件名,需使用用大写字母
#define PUBLIC_H引用及应当放入的函数声明、函数模板#endif

接着我们去src文件夹中创建一个同名的.cpp文件,引用.h文件并存放应有的函数定义,然后再去写好主函数,写好后都要记得保存。
这些都做完后,我们按ctrl+~启动终端(或者在主函数界面点击运行,不用理会报错),然后在终端输入

mingw32-make.exe

生成可执行文件。运行后终端会出现这样的提示:
在这里插入图片描述
我们就会发现有些文件夹多出了内容:
在这里插入图片描述

然后我们可以在终端运行这个生成的.exe文件,注意路径一定要写对:
在这里插入图片描述
出现了乱码,没有关系,我们在主函数中做点手脚:

# include"public.h"
#include <windows.h> // 为使用SetConsoleOutputCP更改cmd编码为utf8
int main()
{SetConsoleOutputCP(65001);double a = 10, b = 20;int c = 10, d = 20;add(c, d);add(a,b);add<>(c, d);
}

当然在做完以上改动之后,我们还是要保存后在进入终端,先清除刚才创建的文件:

终端输入 mingw32-make clean 再回车

然后重新生成可执行文件,再去运行就好了:
在这里插入图片描述
当然,所有代码的内容和上节一样,这里还是不多赘述。

3.修改主函数文件名

在src文件夹中,我们想要使用自己的文件名定义主函数,又该怎么生成可执行文档呢?首先我们需要打开Makefile文件,然后找到以下内容:
在这里插入图片描述
将他修改成我们想要的名字并保存,如2.exe。然后还是用指令

mingw32-make.exe

创建可执行文件:
在这里插入图片描述
需要注意的是,我们最好只保留一个项目文件,举个例子,如果src文件夹中有2.cpp和3.cpp,就有可能报错。
接下来我们运行2.exe文件就可以得到相同的输出了:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

函数大聚会(c++题解)

题目描述 输入一个整数n。 1、判断它是否为素数&#xff0c;是输出“Y,不是输出“N”. 2、输出这个数的各位数字之和。 3、求出这个数所有约数的和。 4、求出1到n的和。 5、输出这个数的倒序数&#xff08;不包含前导0&#xff09;。 输入格式 一行一个整数。 输出格式 五…

2024 Flutter 重大更新,Dart 宏(Macros)编程开始支持,JSON 序列化有救

说起宏编程可能大家并不陌生&#xff0c;但是这对于 Flutter 和 Dart 开发者来说它一直是一个「遗憾」&#xff0c;这个「遗憾」体现在编辑过程的代码修改支持上&#xff0c;其中最典型的莫过于 Dart 的 JSON 序列化。 举个例子&#xff0c;目前 Dart 语言的 JSON 序列化高度依…

使用Java实现最少活跃数负载均衡算法

引言 在分布式系统中&#xff0c;负载均衡是一项关键技术&#xff0c;它能够确保各个服务器之间的负载相对均衡&#xff0c;提高系统性能和可靠性。本文将介绍一个简单而实用的最少活跃数负载均衡算法的Java实现。该算法通过选择当前活跃数最小的服务提供者&#xff0c;以确保…

来看看Tomcat和Web应用的目录结构

在前面两篇大致了解了Tomcat的架构和运行流程&#xff0c;以及Tomcat应用中的web.xml。 聊一聊Tomcat的架构和运行流程&#xff0c;尽量通俗易懂一点-CSDN博客 来吧&#xff0c;好好理解一下Tomcat下的web.xml-CSDN博客 那接下来&#xff0c;再看看Tomcat的目录&#xff0c;…

vue-3d-model

vue-3d-model - npm GitHub - hujiulong/vue-3d-model: &#x1f4f7; vue.js 3D model viewer component 通过该插件降低Threejs的使用难度 vue项目加载三维模型&#xff0c;我把模型放在了服务器的tomcat里面&#xff0c;需要对tomcat的fbx项目文件夹设置跨域&#xff0c;如…

踩坑STM32CubeMX生成Makefile工程无法使用printf(“%f“)

过去一年偶有接触STM32开发时都是使用STM32CubeMX生成Makefile的工程&#xff0c;具体开发环境见配置Clion用于STM32开发&#xff08;Makefile&#xff09;&#xff0c;但没想到今天在使用printf打印输出浮点数时无法正常输出&#xff0c;不仅printf无法使用&#xff0c;其他涉…

详解Skywalking 采集springboot 应用日志的方法(内附源码)

大家都知道Skywalking 的链路追踪功能非常强大&#xff0c;可以帮助用户深入了解应用程序中各个组件之间的依赖关系。在实际应用中&#xff0c;往往需要将链路追踪数据与日志数据结合起来进行综合分析。Skywalking 提供了 Trace Log 结合插件&#xff0c;可以帮助用户快速定位问…

1. OpenAI⼤模型⽣态

OpenAI⼤模型⽣态并不只有⼀个模型&#xff0c;⽽是提供了涵盖⽂本、代码、对话、语⾳、图像领域的⼀系列模型。 基本介绍 语⾔类⼤模型&#xff1a;GPT-3、GPT-3.5、GPT-4系列模型。并且&#xff0c;OpenAI在训练GPT-3的同时&#xff0c;训练了参数不同、复杂度各不相同的A、…

【Vue】指令之显示切换,属性绑定

Vue指令【2】 显示切换与属性绑定v-show指令v-if指令v-bind指令 显示切换与属性绑定 v-show指令 作用&#xff1a;根据真假切换元素的显示状态 指令后的内容最终都会解析为布尔值数据改变之后&#xff0c;对应元素的显示状态会同步更新 语法&#xff1a; <div id"…

[NOIP2013 提高组] 货车运输

[NOIP2013 提高组] 货车运输 题目背景 NOIP2013 提高组 D1T3 题目描述 A 国有 n n n 座城市&#xff0c;编号从 1 1 1 到 n n n&#xff0c;城市之间有 m m m 条双向道路。每一条道路对车辆都有重量限制&#xff0c;简称限重。 现在有 q q q 辆货车在运输货物&#x…

c++ STL less 的视角

c less 函数在不同的地方感觉所起的作用是不一样的&#xff0c; 这中间原因是 less 的视角不一样&#xff0c; 下面尝试给出解释下&#xff0c; 方便记忆 1、 左右视角 符合 排序sort less(value, element&#xff09; less 表示一种 “符合关系“&#xff0c; 表示sort 后…

关于Ubuntu下docker-mysql:ERROR 2002报错

报错场景&#xff1a; mysql容器创建好后登录mysql时即使密码正确也是报出下方提示&#xff1a; 原因是在创建mysql容器在创建时本地目录缺失&#xff0c; 先去自建一个目录&#xff0c;例如&#xff1a; /opt/my_sql 正确完整目录如下&#xff1a; docker run --namemys…

一个升级迁移11g到19c使用xtts遇到的小问题

oracle11.2.0.4到19.21 1.系统权限和对象权限&#xff0c;由于大小写对象名问题&#xff0c;如果使用expdp方式迁移可能存在丢失 迁移后需比对对象、权限&#xff0c;避免遗漏 set pagesize 0 set long 90000 set feedback off set echo off spool ddl.sql select dbms_meta…

2024数学建模美赛F题思路代码分享

非法的野生动物贸易会对我们的环境产生负面影响&#xff0c;并威胁到全球的生物多样性。据估 计&#xff0c;它每年涉及高达265亿美元&#xff0c;被认为是全球第四大非法交易。[1]你将开发一个由数 据驱动的5年项目&#xff0c;旨在显著减少非法野生动物贸易。你的目标是说服一…

【misc | CTF】攻防世界 2017_Dating_in_Singapore

天命&#xff1a;这次终于碰到了算是真正的misc题目了 下载附件&#xff0c;打开是PDF&#xff0c;我一开始以为是flag隐写在PDF里面了 虽然也不奇怪&#xff0c;应该是可以的&#xff0c;毕竟PDF有xss漏洞也是可以的 言归正传&#xff0c;打开PDF 看着新加坡的日历&#xff…

ubuntu 上安装和配置Apache2+Subversion

目录 一、安装Apache2和SVN 二、Apache2设置 三、subversion配置 四、创建仓库和设置权限 五、仓库备份和恢复 系统环境 Ubuntu Linux (20.04) apache2 Subversion(1.13.0) 一、安装Apache2和SVN 通过命令在线安装apache2和subversion apt-get install apache2 libap…

2023-12蓝桥杯STEMA考试 C++ 中高级试卷解析

蓝桥杯STEMA考试 C++ 中高级试卷(12月) 一、选择题 第一题 定义字符串 string a = "Hello C++",下列选项可以获取到字符 C 的是(B)。 A、a[7] B、a[6] C、a[5] D、a[4] 第二题 下列选项中数值与其它项不同的是( C)。 A、 B、 C、 D、 第三题 定义变量 int i =…

【Springcloud篇】学习笔记十(十七章):Sentinel实现熔断与限流——Hystrix升级

第十七章_Sentinel实现熔断与限流 1.Sentinel介绍 1.1是什么 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 用来代替Hystrix Sentinel 具有…

Electron+Vue3+Vite的产品级模板项目

1. electron-vue3-template 基于Vue3 Electron TypeScript的客户端程序模板&#xff0c;使用Vite和Electron Forge构建和打包。 真正做到开箱即用&#xff0c;面向跨平台客户端设计&#xff0c;产品级的项目模板。 项目地址&#xff1a; https://github.com/winsoft666/el…

原子Linux开发板拉流rtsp播放

书接上文&#xff0c;正点原子linux开发板使用ffmpeg api播放视频 现在可以从RTSP拉流了。 视频效果&#xff1a;B站播放拉流的效果 网盘链接 链接&#xff1a;https://pan.baidu.com/s/1ix5OoGJb877tryAETQRMgw 提取码&#xff1a;jc05 上一篇的代码存在内存泄漏的问题&…