C++简明教程(3)(初识VS)

一、编程工具大揭秘——IDE

当我们准备踏入 C++ 编程的奇妙世界时,首先要认识一个重要的“魔法盒子”——集成开发环境(IDE)。IDE 就像是一个全能的编程工作室,它把我们写代码所需要的各种工具都整合到了一起,让编程这件事变得更加方便、高效。

一般来说,一个 IDE 主要包括以下几个关键部分:

  1. 代码编辑器:这是我们编写代码的地方,就像是作家的书桌。它有很多厉害的功能,比如语法高亮。当我们写 C++ 代码时,它会把关键字(像 intifelse 等)用一种颜色显示,把字符串常量(例如 "Hello, World!")用另一种颜色显示,这样我们一眼就能看出代码的结构,就像给不同的文字标上了不同颜色的记号笔,让我们的“文章”(代码)条理清晰。还有自动补全功能,当我们输入一部分代码,比如输入 #inc,它就能猜出我们要写 #include,然后帮我们自动补全,就像输入法能自动补全我们常写的词语一样,大大提高了我们写代码的速度。
  2. 编译器:编译器可是个神奇的“翻译官”。我们用 C++ 写的代码,计算机是看不懂的,编译器的作用就是把我们写的 C++ 代码翻译成计算机能理解的机器语言。它会仔细检查我们的代码有没有语法错误,如果有错误,就会像老师批改作业一样,把错误的地方标出来,让我们修改。只有当代码通过了编译器的“语法考试”,才能被翻译成机器语言,这样计算机才能按照我们写的代码去做事情。
  3. 调试器:这是我们抓代码“小虫子”(错误)的好帮手。当我们的程序运行结果不对时,调试器就派上用场了。它可以让程序一步一步地慢慢运行,我们可以在这个过程中查看变量的值,看看是不是和我们预期的一样。比如说,我们写了一个计算两个数相加的程序,但是结果不对,通过调试器,我们可以看看是不是在赋值或者计算的过程中出现了问题,就像给程序做一个“体检”,找出哪里出了毛病。

二、走进 Visual Studio(VS)的世界

VS 是微软(Microsoft)公司开发的一款非常强大的 IDE,在 Windows 平台上被广泛使用。它就像是编程世界里的一座宏伟的“宫殿”,里面有各种各样的“房间”(功能)供我们探索。

VS 有社区版和专业版:

  • 社区版:对于初学者来说,这是一个很棒的选择,因为它是免费的。社区版提供了基本的 C++ 编程功能,包括代码编辑、编译和调试等,让我们可以轻松地开始学习 C++ 编程,就像给我们提供了一个简单但实用的“小木屋”,虽然没有“宫殿”那么豪华,但足够我们开始探索编程的奥秘。
  • 专业版:这个版本就更加厉害了,它有很多高级的功能。比如更强大的调试工具,可以让我们更深入地查找程序中的错误;还有团队协作功能,如果我们和其他小伙伴一起开发一个大型项目,就可以用这个功能方便地进行代码管理和沟通,就像给专业的编程团队提供了一个装备精良的“城堡”,满足他们在复杂项目开发中的各种需求。

VS 使用的编译器是 MSVC(Microsoft Visual C++ Compiler),它和 VS 配合得非常默契,能够很好地把我们写的 C++ 代码翻译成高效的机器语言,就像一对配合娴熟的舞者,在编程的舞台上展现出精彩的“表演”(编译出优质的可执行文件)。

下载VS:https://visualstudio.microsoft.com/zh-hans/vs/
安装方法不再赘述:https://blog.csdn.net/Javachichi/article/details/131358012

三、创建我们的第一个项目

打开 VS 后,我们就像走进了一个充满无限可能的编程天地。在这里,我们要创建一个项目,项目就像是一个装满了各种编程宝贝的“魔法盒子”,把我们写的代码、配置信息等都装在里面。

VS 中有很多项目类型,比如控制台应用程序、Windows 桌面应用程序、MFC(Microsoft Foundation Classes)应用程序、QT 应用程序等。这里我们先选择 C++ 控制台项目,那什么是控制台呢?控制台就像是一个和计算机“对话”的窗口,我们可以在这个窗口里输入一些信息,计算机也可以在这个窗口里给我们输出一些结果。比如说,我们写一个简单的加法程序,在控制台里输入两个要相加的数,计算机就会在这个窗口里把结果显示出来,就像我们和计算机在这个小小的“对话框”里聊天一样。

当我们选择创建 C++ 控制台项目时,其实 VS 已经在后台帮我们做了一些基本的配置,这些配置就像是给我们的“魔法盒子”准备好了一些初始的“魔法道具”。但如果我们以后要开发 GUI(Graphical User Interface,图形用户界面)应用程序,比如像我们平时使用的软件那样有漂亮的窗口、按钮等,我们可能就会选择 MFC 或者 QT 项目类型,这时候 VS 会在空项目的基础上配置更多的东西,就像给我们的“魔法盒子”添加更多更高级的“魔法道具”,让我们能够创造出更加丰富多彩的程序。

四、深入了解项目配置

一个项目就像一个小小的编程王国,而项目配置就是这个王国的“规章制度”。在 VS 中,我们可以对项目进行各种配置,让它更符合我们的需求。

比如输出目录,这就像是我们王国的“宝藏仓库”,我们可以指定编译后生成的文件(比如可执行文件)存放在哪里。我们可以创建一个专门的文件夹,然后把输出目录设置为这个文件夹的路径,这样我们就能很容易地找到编译好的文件,就像把宝藏都放在一个特定的仓库里,方便我们随时取用。

工作目录呢,就像是我们在王国里工作的“办公室”,当程序运行时,如果它要读取一些文件,就会默认在这个工作目录下去找。比如说我们的程序要读取一个配置文件,只要把这个配置文件放在工作目录下,程序就能顺利地找到它,就像我们在办公室里找文件一样,知道去哪里找自己需要的东西。

还有其他配置,比如是否开启编译器优化,C++版本等等。

VS 是通过一些特殊的文件来实现项目配置的,比如.sln 文件和.vcxproj 文件。.sln 文件就像是我们编程王国的“总地图”,它管理着整个项目或者多个项目之间的关系。如果我们的项目比较大,可能会有多个部分,每个部分都是一个独立的项目,这时候.sln 文件就能把它们都管理起来,让我们可以方便地在不同项目之间切换和协调,就像拿着总地图在一个大城堡里穿梭不同的房间一样。.vcxproj 文件则是单个项目的“详细说明书”,它里面记录了源文件和头文件的路径、编译器选项、链接器选项等各种详细信息。当 VS 编译我们的项目时,就会按照这个“说明书”上的指示去做,就像建筑工人按照建筑图纸来盖房子一样,确保项目能够正确地编译和运行。我们在进行项目配置时实际上就是在修改这两个文件。

.sln中文称为解决方案,一个解决方案可以包含多个项目,后面的文章会讲到如何在一个解决方案种添加多个项目。

五、项目的多种配置模式

在一个项目中,我们可以设置多种不同的配置,就像给我们的编程王国准备不同的“装扮”。一般来说,最常用的是 debug 和 release 两种配置。

debug 模式就像是给程序戴上了一个“放大镜”,它会生成包含很多调试信息的可执行文件。这些调试信息就像是在程序的各个关键地方都安装了“摄像头”,让我们可以在程序运行的时候查看变量的值、跟踪程序的执行流程。比如说我们写了一个计算数学题的程序,但是结果不对,在 debug 模式下,我们可以一步一步地看程序是怎么计算的,看看是不是在某个地方算错了,就像用放大镜仔细检查一个精密仪器的内部结构,找出哪里出了问题。

release 模式则像是给程序穿上了一双“跑鞋”,它的目标是让程序跑得更快。在这个模式下,编译器会对代码进行各种优化,去掉一些不必要的东西,让程序的运行效率更高。生成的可执行文件会更小、运行速度更快,就像一辆经过改装的赛车,去掉了多余的重量,调整到最佳的性能状态,全力冲刺。但是因为它主要关注速度,所以不会包含 debug 模式下的那些调试信息,所以如果程序出了问题,在 release 模式下就不太容易找到错误原因。

除了 debug 和 release 模式,还有位数的配置,比如 x86 和 x64。x86 是指 32 位的程序,x64 是指 64 位的程序。简单来说,64 位的程序可以使用更多的内存,对于一些大型的程序或者需要处理大量数据的程序来说,64 位可能会更合适;而 32 位的程序在一些旧的系统或者对内存需求不大的情况下也有它的优势。当我们把 debug 和 release 模式与位数配置结合起来,实际上就有了 4 种配置,分别是 debug x86、debug x64、release x86 和 release x64。我们还可以根据自己的需求新建一组配置,就像给我们的编程王国定制一种新的“装扮风格”,让项目更符合我们的特殊要求。

实操环节

在这里插入图片描述
控制台上面这个黑框就是控制台
在这里插入图片描述
点击创建,项目就创建好了,可以看到有一个main.cpp的文件。
然后我们把窗口关掉,学习如何打开一个项目。
直接双击.sln文件就能打开解决方案。
在这里插入图片描述
也可以像下面这样:
在这里插入图片描述
选择sln文件打开即可
在这里插入图片描述

多种配置,表示目前正在使用debug x86的配置,推荐把x86改为x64.
在这里插入图片描述

这个可以新增配置:
在这里插入图片描述
在这里插入图片描述
目前初学,不用新增,这几种配置够用的。

下面来看每种配置的详细配置,通过属性管理器查看。
在这里插入图片描述

可以看到这个项目有四种配置。
在这里插入图片描述
右键属性,即可查看配置。
在这里插入图片描述
可修改的配置非常多,可以自行研究下,他们的作用。
如果要修改C++版本,修改这里即可。
在这里插入图片描述

生成,是指生成目标文件,比如exe,清理是指删除生成的目标文件。
在这里插入图片描述

调试执行生成的文件,如果点击后,VS检测到没生成,那么就先自动生成,再调试执行。调试执行就是遇到断点会停下。
在这里插入图片描述

看看这个文章:https://blog.csdn.net/weixin_45100742/article/details/135152562

也可以忽略所有断点直接运行,开始执行不调试。
在这里插入图片描述
我们也可以这样运行,找到这个生成的exe文件,直接运行他。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决

电脑蓝屏是让许多用户头疼的问题,其中出现 “0x0000007f” 错误代码更是较为常见且棘手。了解其背后成因并掌握修复方法,能帮我们快速恢复电脑正常运行。 一、可能的硬件原因 内存问题 内存条长时间使用可能出现物理损坏,如金手指氧化、芯片…

分布式调度框架学习笔记

一、分布式调度框架的基本设计 二、线程池线程数量设置的基本逻辑 cpu是分时复用的方法,线程是cpu调度的最小单元 如果当前cpu核数是n,计算密集型线程数一般设为n,io密集型(包括磁盘io和网络io)线程数一般设置为2n. 计算密集型线程数一般设…

快速排序算法 -- 深入研究

一 . 快排性能的关键点分析 快排性能的关键点分析 : 决定快排性能的关键点是每次单趟排序后 , key 对数组的分割 , 如果每次选key 基本二分居中,那么快排的递归树就是颗均匀的满二叉树,性能最佳。但是实际中虽然不可能每次都是二…

ORA-65198 PDB clone 时 不能新加datafile 以及hang的一个原因

create pluggable database XX from SS keystore identified by "YYY" parallel 32 service_name_convert( _srv, _srv); 20TB 4小时 update /* rule */ undo$ set name:2,file#:3,block#:4,status$:5,user#:6,undosqn:7,xactsqn:8,scnbas:9,scnwrp:10,inst#:11,…

Android--java实现手机亮度控制

文章目录 1、开发需求2、运行环境3、主要文件4、布局文件信息5、手机界面控制代码6、debug 1、开发需求 需求:开发一个Android apk实现手机亮度控制 2、运行环境 Android studio最新版本 3、主要文件 app\src\main\AndroidManifest.xml app\src\main\res\layou…

HarmonyOS NEXT 实战之元服务:静态案例效果--- 日出日落

背景: 前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考 先上本期效果图 ,里面图片自行替换 效果图1完整代码案例如下: import { authentication } …

一起学Git【番外篇:如何在Git中新建文件】

在介绍Git之前,我们需要了解一下如何在Git里添加、编辑和删除文件。 首先,需要使用文件编辑器进行文件的创建,常见的文件编辑器有以下几种: Vim:一种基于命令行的编辑器,功能强大,适合开发者和…

叉车作业如何确认安全距离——UWB测距防撞系统的应用

叉车在工业环境中运行,常常需要在狭窄的空间内完成货物的搬运和堆垛,这对操作员的技术水平和安全意识提出了极高的要求。传统的叉车作业依赖操作员的经验和视觉判断来确认安全距离,然而这种方式往往存在误差,特别是在视线受阻或光…

hi168大数据离线项目环境搭建

hi168大数据离线项目环境搭建 ## **1. 服务器准备**##### 1.1 创建集群应用节点 集群服务器使用“我的应用“中的Ubuntu22.04集群模版创建三个节点应用,并且进入“我的应用”中去修改一下节点名称(node1对应master,node2对应hadoop1&#xf…

分布式专题(10)之ShardingSphere分库分表实战指南

一、ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在…

大模型-Ollama使用相关的笔记

大模型-Ollama使用相关的笔记 解决Ollama外网访问问题(配置ollama跨域访问)Postman请求样例 解决Ollama外网访问问题(配置ollama跨域访问) 安装Ollama完毕后, /etc/systemd/system/ollama.service进行如下修改&#…

Python:模拟(包含例题:饮料换购 图像模糊 螺旋矩阵)

模拟题:直接按照题目含义模拟即可,一般不涉及算法 注意: 1.读懂题:理清楚题目流程 2.代码和步骤一一对应:变量名,函数名,函数功能 3.提取重复的部分,写成对应的函数(…

【数据库初阶】数据库基础知识

🎉博主首页: 有趣的中国人 🎉专栏首页: 数据库初阶 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 数据库…

汽车IVI中控开发入门及进阶(四十):FDK AAC音频编解码软件库

概述: FDK AAC是一个用于编码和解码高级音频编码格式音频的开源软件库,由Fraunhofer IIS开发,并作为Android的一部分包含在内。它支持多种音频对象类型,包括MPEG-2和MPEG-4 AAC LC、HE-AAC、HE-AACv2以及AAC-LD和AAC-ELD,用于实时通信。编码库支持高达96 kHz的采样率和多…

Python爬虫:速卖通aliexpress商品详情获取指南

在数字化时代,数据已成为企业竞争的关键资源。对于电商行业而言,获取竞争对手的商品信息是洞察市场动态、优化自身产品策略的重要手段。速卖通(AliExpress)作为全球知名的跨境电商平台,其商品信息的获取自然成为了许多…

要查询 `user` 表中 `we_chat_open_id` 列不为空的用户数量

要查询 user 表中 we_chat_open_id 列不为空的用户数量,你可以使用以下 SQL 查询语句: SELECT COUNT(*) FROM user WHERE we_chat_open_id IS NOT NULL AND we_chat_open_id ! ;解释: SELECT COUNT(*): 表示要计算符合条件的行数。FROM us…

学习思考:一日三问(学习篇)之匹配VLAN

学习思考:一日三问(学习篇)之匹配VLAN 一、学了什么(是什么)1.1 理解LAN与"V"的LAN1.2 理解"V"的LAN怎么还原成LAN1.3 理解二层交换机眼中的"V"的LAN 二、为何会产生需求(为…

mac中idea菜单工具栏没有git图标了

1.右击菜单工具栏 2.选中VCS,点击添加 3.搜索你要的工具,选中点击确定就添加了 4.回到上面一个界面,选中你要放到工具栏的工具,点击应用就好了 5.修改图标,快捷键或者右击选中编辑图标 6.选择你要的图标就好了

深度学习中batch_size

Batch size调整和epoch/iteration的关系 训练数据集总共有1000个样本。若batch_size10,那么训练完全体样本集需要100次迭代,1次epoch。 训练样本10000条,batchsize设置为20,将所有的训练样本在同一个模型中训练5遍,则…

Vue使用Tinymce 编辑器

目录 一、下载并重新组织tinymce结构二、使用三、遇到的坑 一、下载并重新组织tinymce结构 下载 npm install tinymce^7 or yarn add tinymce^7重构目录 在node_moudles里找到tinymce文件夹,把里面文件拷贝一份放到public下,如下: -- pub…