C++简明教程(文章要求学过一点C语言)(3)

一、编程工具大揭秘——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/940782.html

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

相关文章

STM32-笔记5-按键点灯(中断方法)

1、复制03-流水灯项目,重命名06-按键点灯(中断法) 在\Drivers\BSP目录下创建一个文件夹exti,在该文件夹下,创建两个文件exti.c和exti.h文件,并且把这两个文件加载到项目中,打开项目工程文件 加载…

实现 WebSocket 接入文心一言

目录 什么是 WebSocket? 为什么需要 WebSocket? HTTP 的局限性 WebSocket 的优势 总结:HTTP 和 WebSocket 的区别 WebSocket 的劣势 WebSocket 常见应用场景 WebSocket 握手过程 WebSocket 事件处理和生命周期 WebSocket 心跳机制 …

leetcode-80.删除有序数组的重复项II-day12

总结:不必过于死磕一道题目,二十分钟没做出来就可参考题解

RTOS之邮箱

邮箱 邮箱 (Mailbox) 服务是实时操作系统中一种常用的线程间通信机制。它提供了一种高效、低开销的消息传递方式,允许线程之间交换固定大小的数据。 1. 邮箱的应用场景 考虑一个简单的示例:线程 1 负责检测按键状态并将状态信息发送出去,线程…

凯酷全科技抖音电商服务的卓越践行者

在数字经济蓬勃发展的今天,电子商务已成为企业增长的新引擎。随着短视频平台的崛起,抖音作为全球领先的短视频社交平台,不仅改变了人们的娱乐方式,也为品牌和商家提供了全新的营销渠道。厦门凯酷全科技有限公司(以下简…

AI的进阶之路:从机器学习到深度学习的演变(三)

(承接上集:AI的进阶之路:从机器学习到深度学习的演变(二)) 四、深度学习(DL):机器学习的革命性突破 深度学习(DL)作为机器学习的一个重要分支&am…

数据集-目标检测系列 车牌检测识别 数据集 CCPD2019

车牌检测&识别 数据集 CCPD2019 DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” 贵在坚持! 数据样…

安全算法基础(一)

安全算法是算法的分支之一,还的依靠大量的数学基础进行计算,本文参照兜哥的AI安全样本对抗,做一个简单的算法安全概括,从零学习。 最新的安全算法对于我们常规的攻击样本检测,效果是不理想的,为了探究其原…

[SZ901]JTAG高速下载设置(53Mhz)

SZ901最高支持JTAG 53MHz的时钟频率,下载bit文件和固化程序的速度提升非常明显。 首先设置参数 1,将JTAG0 分频系数修改为3 2,设置参数,更新参数。(完成) 打开VIVADO VIVADO 正常识别FPGA,速…

图漾相机-ROS1_SDK_ubuntu版本编译(新版本)

文章目录 官网编译文档链接官网SDK下载链接1、下载 Camport ROS1 SDK1.下载git2、下载链接 2、准备编译工作1、安装 catkin2、配置环境变量3. 将Camport3中的linux库文件拷贝到 user/lib目录下4、修改lunch文件制定相机(可以放在最后可以参考在线文档)**…

openbmc hwmon与sensor监控

1.说明 参考文档: https://github.com/openbmc/entity-manager/blob/master/docs/entity_manager_dbus_api.mdhttps://github.com/openbmc/entity-manager/blob/master/docs/my_first_sensors.md 1.1 简单介绍 注意: 本节是快速浏览整个sensor框架,了解大致open…

Java --- 多线程

目录 前言: 一.线程的创建: 1.通过继承 Thread 类来创建线程: 2.通过Runnable接口创建线程: 3.通过Java8引入的lambda语法: 线程的优先级: 二.线程的生命周期: 三. 中断线程&#xff1a…

使用 acme.sh 申请域名 SSL/TLS 证书完整指南

使用 acme.sh 申请域名 SSL/TLS 证书完整指南 简介为什么选择 acme.sh 和 ZeroSSL?前置要求安装过程 步骤一:安装 acme.sh步骤二:配置 ZeroSSL 证书申请 方法一:手动 DNS 验证(推荐新手使用)方法二&#xf…

Flutter组件————Scaffold

Scaffold Scaffold 是一个基础的可视化界面结构组件,它实现了基本的Material Design布局结构。使用 Scaffold 可以快速地搭建起包含应用栏(AppBar)、内容区域(body)、抽屉菜单(Drawer)、底部导…

YOLOv8目标检测(七)_AB压力测试

YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训…

SpringBoot的创建方式

SpringBoot创建的五种方式 1.通过Springboot官网链接下载 注意SpringBoot项目的封装方式默认为Jar 需要查看一下,自己的Maven版本是否正确 创建成功 2.通过 aliyun官网链接下载 修改服务路径为阿里云链接 创建成功 3.通过Springboot官网下载 点击,拉到最…

批处理理解

初识批处理 如何批处理: 命名:.bat 方法:创建一个记事本文件,然后将其扩展改为.bat 批处理作用:自上而下成批处理每一条DOS命令,直到执行到最后一条。运行环境:当然是我们cmd了 回归我学过的…

概率论得学习和整理29: 用EXCEL 描述二项分布

目录 1 关于二项分布的基本内容 2 二项分布的概率 2.1 核心要素 2.2 成功K次的概率,二项分布公式 2.3 期望和方差 2.4 具体试验 2.5 概率质量函数pmf 和cdf 3 二项分布的pmf图的改进 3.1 改进折线图 3.2 如何生成这种竖线图呢 4 不同的二项分布 4.1 p0.…

全志H618 Android12修改doucmentsui功能菜单项

背景: 由于当前的文件管理器在我们的产品定义当中,某些界面有改动的需求,所以需要在Android12 rom中进行定制以符合当前产品定义。 需求: 在进入File文件管理器后,查看...功能菜单时,有不需要的功能菜单,需要隐藏,如:新建窗口、不显示的文件夹、故代码分析以及客制…

Elasticsearch问题总结

Fielddata access on the_id field is disallowed, you can re-enable it by updating the dynamic cluster setting: indices.id_field_data.enabledElasticsearch默认禁用_id字段进行排序,这是因为_id字段通常不需要进行聚合或排序操作,启用字段数据可…