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文件,直接运行他。
在这里插入图片描述

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

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

相关文章

达梦官方工具 SQLark数据迁移(oracle->达梦数据库)

应国产化需求需要,需将系统中涉及的各中间件替换成国产中间件,此文介绍了从Oracle迁移数据至达梦dm8的步骤,该文在windos环境下已验证测试过 1 SQLark介绍 SQLark是一款专为信创应用开发者设计的数据库开发和管理工具。它支持快速查询、创建和管理多种类型的数据库系统&#xf…

【JAVA】JAVA接口公共返回体ResponseData封装

一、JAVA接口公共返回体ResponseData封装&#xff0c;使用泛型的经典 例子 public class ResponseData<T> implements Serializable { /** * */ private static final long serialVersionUID 7098362967623367826L; /** * 响应状态码 */ …

AlipayHK支付宝HK接入-商户收款(PHP)

一打开支付宝国际版 二、点开商户服务 三、下载源码

nginx学习总结(不包含安装过程)

1. nginx常见配置 http服务上支持【若干虚拟主机】。每个虚拟主机对应一个server配置项&#xff0c;配置项里面包含该虚拟主机相关的配置。 server{listen 80 default;server_name www.yonqin.com;index index.html index.htm index.php;root /data/www;location ~ .*\.(gif|…

贪心算法在背包问题上的运用(Python)

背包问题 有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 这就是典型的背包问题(又称为0-1背包问题),也是具体的、没有经过任何延伸的背包问题模型。 背包问题的传统求解方法较为复杂,现定义有一个可以载重为8kg的背…

【ArcGIS Pro微课1000例】0063:处理无人机数据(空三、生成DOM、DSM、DTM)

使用ArcGIS Pro 正射拼接处理无人机数据流程化工具,不需要额外产品许可的支持,只需要桌面是高级版许可即可支持。ArcGIS Pro处理无人机摄影测量数据主要内容有:空三、生成DOM、DSM、DTM。 文章目录 一、创建映射项目二、提交自由空三三、添加控制点优化四、提交产品生产一、…

人工智能ACA(四)--机器学习基础

零、参考资料 一篇文章完全搞懂正则化&#xff08;Regularization&#xff09;-CSDN博客 一、 机器学习概述 0. 机器学习的层次结构 学习范式&#xff08;最高层&#xff09; 怎么学 监督学习 无监督学习 半监督学习 强化学习 学习任务&#xff08;中间层&#xff0…

豆包MarsCode:小U的数字插入问题

问题描述 问题分析 问题的核心是找到将数字 b 插入到数字 a 的某个位置后&#xff0c;使形成的数字尽可能大。需要仔细分析以下几个要点&#xff1a; 1. 分析数字的特性 输入的两个数字&#xff1a; a 是一个正整数&#xff08;例如 76543&#xff09;。b 是一个非负整数&am…

【Cadence射频仿真学习笔记】IC设计中电感的分析、建模与绘制(EMX电磁仿真,RFIC-GPT生成无源器件及与cadence的交互)

一、理论讲解 1. 电感设计的两个角度 电感的设计可以从两个角度考虑&#xff0c;一个是外部特性&#xff0c;一个是内部特性。外部特性就是把电感视为一个黑盒子&#xff0c;带有两个端子&#xff0c;如果带有抽头的电感就有三个端子&#xff0c;需要去考虑其电感值、Q值和自…

基础元器件的学习

1、二极管 1.1二极管的符号 ZD是稳压二极管 VD、V、D是普通二极管的符号。 1.2二极管的反向恢复时间 首先交流电为上正下负&#xff0c;然后下正上负。当二极管接到反向电压&#xff0c;二极管存在寄生电容&#xff0c;电压不能立刻突变&#xff0c;当输入频率变高时&#…

EdgeX物联网平台

一、概述 EdgeX Foundry是一个由Linux基金会支持的边缘计算开源平台。它的定位是作为通用工业物联网边缘计算通用框架,部署在路由器和交换机等边缘设备上。EdgeX Foundry为各种传感器、设备或其他物联网器件提供即插即用功能,并管理它们,进一步收集和分析它们的数据,或者导…

Linux之帮助命令

一、man帮助命令 语法&#xff1a; man 你要查找的命令例如&#xff1a;man ls 即可得到你要的命令说明&#xff0c;按q退出 二、内置命令和外部命令 一部分基础功能的系统命令是直接内嵌在shel中的&#xff0c;系统加载启动之后会随着shll一起加载&#xff0c;常驻系统内存中…

MONI后台管理系统-swagger3(springdoc-openapi)集成

springdoc-openapi Java 库有助于使用 Spring Boot 项目自动生成 API 文档。springdoc-openapi 通过在运行时检查应用程序来根据 Spring 配置、类结构和各种注释推断 API 语义。 该库会自动生成 JSON/YAML 和 HTML 格式的页面文档。生成的文档可以使用swagger-api注释进行补充。…

GFPS扩展技术原理(七)-音频切换消息流

音频切换消息流 Seeker和Provider通过消息流来同步音频切换能力&#xff0c;触发连接做切换&#xff0c;获取或设置音频切换偏好&#xff0c;通知连接状态等等。为此专门定义了音频切换消息流Message Group 为0x07&#xff0c;Message codes如下&#xff1a; MAC of Audio s…

LiteFlow决策系统的策略模式,顺序、最坏、投票、权重

个人博客&#xff1a;无奈何杨&#xff08;wnhyang&#xff09; 个人语雀&#xff1a;wnhyang 共享语雀&#xff1a;在线知识共享 Github&#xff1a;wnhyang - Overview 想必大家都有听过或做过职业和性格测试吧&#xff0c;尤其是现在的毕业生&#xff0c;在投了简历之后经…

【计算机视觉基础CV-图像分类】02-入门详解图像分类、经典数据集、比赛与冠军图像模型演进史

前言 图像分类&#xff08;Image Classification&#xff09;是计算机视觉&#xff08;Computer Vision&#xff09;中一项基础且核心的任务。简单来说&#xff0c;就是让计算机从给定的类别集合中&#xff0c;为一张输入图片分配一个正确的类别标签。这个过程听起来直观&…

嵌入式驱动开发详解20(IIO驱动架构)

文章目录 前言IIO子系统简介主要结构体主要API函数 IIO子系统实现SPI框架IIO框架IIO通道详解通道结构体分析通道命名分析icm20608设备通道实现 读取函数写入函数 测试测试效果命令行读取应用程序读取 后续参考文献 前言 IIO 全称是 Industrial I/O&#xff0c;翻译过来就是工业…

Linux 网络维护相关命令简介

目录 零. 概要一. ping二. ip命令2.1 ip address2.2 ip route2.3 ip neighbour 三. traceroute四. DNS查询4.1 nslookup4.2 dig 五. ss 查看网络连接状态 零. 概要 ⏹在Linux系统中有2套用于网络管理的工具集 net-tools 早期网络管理的主要工具集&#xff0c;缺乏对 IPv6、网…

Jenkins持续集成部署——jenkins安装

前言 Jenkins 是一个开源的自动化服务器&#xff0c;主要用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;。它为软件开发团队提供了一个易于使用的平台来自动化构建、测试和部署应用程序的过程。 Jenkins 主要功能 1. 持续集成 (CI) 自动构建…

PYG - Cora数据集加载 (自动加载+手动实现)

本文从Cora的例子来展示PYG如何加载图数据集。 Cora 是一个小型的有标注的图数据集&#xff0c;包含以下内容&#xff1a; data.x&#xff1a;2708 个节点&#xff08;即 2708 篇论文&#xff09;&#xff0c;每个节点有 1433 个特征&#xff0c;形状为 (2708, 1433)。data.ed…