黑马程序员C++2024版笔记 第0章 C++入门
1.C++代码的基础结构
以hello_world代码为例:
预处理指令
#include<iostream>
using namespace std;
代码前2行是预处理指令,即代码编译前的准备工作。(编译是将源代码转化为可执行程序.exe文件的过程)
主函数
主函数是程序入口,即程序执行的开始。
其中的代码是逻辑代码/功能代码,每一行以分号;结尾。
int main()
{cout << "Hello World!" <<endl;return 0;
}
2.单工程多main函数设置
Clion是以工程管理代码,一般情况下,一个过程代指一个具体的程序开发任务。即,
- 每个程序开发都有各自对应的工程
- 由于main函数是工程的入口,所以每个工程仅允许1个main函数。
在学习过程中,每个知识点都创建一个文件夹不方便,一个比较直观的想法是,把每个文件下的main函数改成其他,比如main11,main22,但是这样就太难受了。
另一个办法:创建新文件时,把默认的“添加到目标”(add to target)取消勾选,即可正常运行。
3.手动编译代码并运行
使用Clion集成开发工具可以快捷的通过鼠标点击直接运行代码。但是作为开发人员,原始的代码编译并运行的方式也是需要了解的。
mingw工具可以实现在Windows、macos和Linux系统编译。
3.1编译器相关前置操作
MINGW下载
https://sourceforge.net/projects/mingw/
安装
双击exe程序安装,change可以改变安装位置,点击continue开始联网下载。
下载完成后点击continue就会弹出mingw 安装管理器:
选择mingw32和mingw32-gcc-g++,选中然后点击“mark for installation”
选中后在左上角installation选择apply changes,并在确认框点击apply
安装完成后关闭
检查
打开mingw的安装位置,选择bin文件夹并打开找到g++
配置环境变量
在windows搜索框里搜索“高级系统设置”,点击面板里的环境变量按钮,找到系统变量中的path变量,点击编辑。将bin文件夹所在路径复制并添加进path中,点击确定,环境变量就配置好了。
验证
windows+r,输入cmd,打开命令行。输入
g++ -v
并回车。如果弹出gcc版本(例如我的是gcc version 6.3.0)说明配置成功。
3.2手动编译代码
新建一个文本文件,把任意代码写进去。写完关闭并保存。
修改文件后缀为.cpp。代开命令行,使用cd命令切换到测试代码所在的文件夹
在当前目录下输入
g++ 文件名.cpp -o 文件名.exe
并回车。
当前目录下除了test.cpp文件还生成了test.exe文件。直接输入test.exe回车就能运行了。
以上就是编译步骤。
这部分黑马的曹老师总结了一个文档方便大家记忆:手动编译代码并执行 · 语雀
4.[扩展]vscode环境配置
提示:配置vscode环境必须完成第三节的编译环境准备。
老师将配置过程写在这篇文档里了,可以结合b站的课程听一下。
C++入门-08_【扩展】VSCode环境配置_哔哩哔哩_bilibili
Visual Studio Code 配置 · 语雀
5.cout打印输出
在clion中创建cout源文件。注意补药勾选添加到目标。
单行输出:endl有换行作用
#include <iostream>
using namespace std;int main() {cout << "1" << endl;cout << "2" << endl;return 0;
}
一行多个输出:<<填充内容
#include <iostream>
using namespace std;int main() {cout << "1" << "+" << "1" << endl;return 0;
}
6.代码注释
单行注释
以//开头的行被视为注释,编译器不会对其进行处理。
// 所在行右侧内容作为注释存在
//和注释内容建议相隔一个空格。
多行注释
多行注释以/*开头,以*/结尾,中间全部内容为注释。在/*和*/之间可以任意换行。
7.Clion设置
1.修改为中文->安装Chinese插件
2.字体大小调整->设置搜索鼠标勾选”使用ctrl+鼠标更改字号“,选择所有编辑器
3.更换主题->插件搜索主题
4.快捷键
shift+alt+键盘上/下 | 控制当前行进行上/下移动 |
ctrl+d | 复制当前行 |
home、end | 移动光标到行首、行尾 |
ctrl+键盘左/右 | 光标左右跳单词 |
相关文章:

黑马程序员C++2024版笔记 第0章 C++入门
1.C代码的基础结构 以hello_world代码为例: 预处理指令 #include<iostream> using namespace std; 代码前2行是预处理指令,即代码编译前的准备工作。(编译是将源代码转化为可执行程序.exe文件的过程) 主函数 主函数是…...
c#定义占用固定字节长度的结构体字段
在c中,经常类似这样定义结构体: struct DEMO_STRUCT {int a;int b;char c[128]; }; 定义这个结构体,占用了136个字节的内存空间,关键的是,它的内存块是连续的,其中c占用了128个字节 然后如果想在c#中定义…...

foxmail - foxmail 启用超大附件提示密码与帐号不匹配
foxmail 启用超大附件提示密码与帐号不匹配 问题描述 在 foxmail 客户端中,启用超大附件功能,输入了正确的账号(邮箱)与密码,但是提示密码与帐号不匹配 处理策略 找到 foxmail 客户端目录/Global 目录下的 domain.i…...

Crowdfund Insider聚焦:CertiK联创顾荣辉解析Web3.0创新与安全平衡之术
近日,权威金融科技媒体Crowdfund Insider发布报道,聚焦CertiK联合创始人兼CEO顾荣辉教授在Unchained Summit的主题演讲。报道指出,顾教授的观点揭示了Web3.0生态当前面临的挑战,以及合规与技术在推动行业可持续发展中的关键作用。…...
EDR与XDR如何选择适合您的网络安全解决方案
1. 什么是EDR? 端点检测与响应(EDR) 专注于保护端点设备(如电脑、服务器、移动设备)。通过在端点安装代理软件,EDR实时监控设备活动,检测威胁并快速响应。 EDR核心功能 实时监控:…...

PowerBI链接EXCEL实现自动化报表
PowerBI链接EXCEL实现自动化报表 曾经我将工作中一天的工作缩短至2个小时,其中最关键的一步就是使用PowerBI链接Excel做成一个自动化报表,PowerBI更新源数据,Excel更新报表并且保留报表格式。 以制作一个超市销售报表为例,简单叙…...

腾讯云MCP数据智能处理:简化数据探索与分析的全流程指南
引言 在当今数据驱动的商业环境中,企业面临着海量数据处理和分析的挑战。腾讯云MCP(Managed Cloud Platform)提供的数据智能处理解决方案,为数据科学家和分析师提供了强大的工具集,能够显著简化数据探索、分析流程,并增强数据科学…...

Android framework 中间件开发(一)
在Android开发中,经常会调用到一些系统服务,这些系统服务简化了上层应用的开发,这便是中间件的作用,中间件是介于系统和应用之间的桥梁,将复杂的底层逻辑进行一层封装,供上层APP直接调用,或者将一些APP没有权限一些操作放到中间件里面来实施. 假设一个需求,通过中间件调节系统亮…...
Lua中使用module时踩过的坑
在lua中设置某个全局对象(假如对象名为LDataUser)为nil时, LDataUser并不会变成nil, 但在有些情况下设置LDataUser nil时却真变成了nil,然后会导致后续再使用LDataUser时会抛nil异常, 后来发现是使用module搞的鬼,下面看看豆包AI给的解释,还…...

MATLAB中的概率分布生成:从理论到实践
MATLAB中的概率分布生成:从理论到实践 引言 MATLAB作为一款强大的科学计算软件,在统计分析、数据模拟和概率建模方面提供了丰富的功能。本文将介绍如何使用MATLAB生成各种常见的概率分布,包括均匀分布、正态分布、泊松分布等,并…...

C# 面向对象 构造函数带参无参细节解析
继承类构造时会先调用基类构造函数,不显式调用基类构造函数时,默认调用基类无参构造函数,但如果基类没有写无参构造函数,会无法调用从而报错;此时,要么显式的调用基类构造函数,并按其格式带上参…...
轨迹误差评估完整流程总结(使用 evo 工具)
roslaunch .launch rosbag play your_dataset.bag -r 2.0 ✅ 第二步:录制估计轨迹 bash 复制编辑 rosbag record -O traj_only.bag /aft_mapped_to_init 运行一段时间后 CtrlC 停止,生成 traj_only.bag 第三步:提取估计轨迹和真值轨迹为…...
Spring Boot 跨域问题全解:原理、解决方案与最佳实践
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、跨域问题的本质 1.1 什么是跨域? 跨域(Cross-Origin)问题源于浏览器的同源策略(Same-Origin Policy&…...
vhca_id 简介,以及同 pf, vf 的关系
vhca_id 指的是 Virtual Host Channel Adapter ID(虚拟主机通道适配器编号),它是 NVIDIA(Mellanox)网络设备虚拟化架构中的一个核心概念。 它与 PF(物理功能)、VF(虚拟功能ÿ…...
LlamaIndex 第九篇 Indexing索引
索引概述 数据加载完成后,您将获得一个文档对象(Document)列表(或节点(Node)列表)。接下来需要为这些对象构建索引(Index),以便开始执行查询。 索引(Index) 是一种数据结构,能够让我们快速检索…...
微信小程序原生swiper高度自适应图片,不同屏幕适配,正方形1:1等比例图片轮播
🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回!!) 👉 个人专栏推荐:《前端项目教程以及代码》 ✨一、前言分析 一开始只设了图片的mode="widthFix" st…...

在 C# 中将 DataGridView 数据导出为 CSV
在此代码示例中,我们将学习如何使用 C# 代码将 DataGridView 数据导出到 CSV 文件并将其保存在文件夹中。 在这个程序中,首先,我们必须连接到数据库并从中获取数据。然后,我们将在数据网格视图中显示该数据,…...
解锁 CPU 性能天花板:多维优化策略深度剖析
在数字世界的底层战场,CPU 如同指挥千军万马的将军,掌控着程序运行的节奏与效率。无论是大型服务器应用,还是手机端的轻量化程序,CPU 性能的优化都如同解锁隐藏力量的密码,能让程序在执行效率上实现质的飞跃。本文将深…...
Android SwitchButton 使用详解:一个实际项目的完美实践
Android SwitchButton 使用详解:一个实际项目的完美实践 引言 在最近开发的 Android 项目中,我遇到了一个需要自定义样式开关控件的需求。经过多方比较,最终选择了功能强大且高度可定制的 SwitchButton 控件。本文将基于实际项目中的使用案…...
Kafka如何实现高性能
Kafka如何实现高性能 Kafka之所以能成为高性能消息系统的标杆,是通过多层次的架构设计和优化实现的。 一、存储层优化 1. 顺序I/O设计 日志结构存储:所有消息追加写入,避免磁盘随机写分段日志:将日志分为多个Segment文件&…...

MySQL中表的增删改查(CRUD)
一.在表中增加数据(Create) INSERT [INTO] TB_NAME [(COLUMN1,COLUMN2,...)] VALUES (value_list1),(value_list2),...;into可以省略可仅选择部分列选择插入,column即选择的列, 如图例可以选择仅在valuelist中插入age和id如果不指…...

项目思维vs产品思维
大家好,我是大明同学。 这期内容,我们来聊一下项目思维和产品思维的区别。 项目是实施关键,力求每一步都精准到位;产品则是战略导向,确保所选之路正确无误。若缺乏优异成果,即便按时完成,也只…...

游戏引擎学习第285天:“Traversables 的事务性占用”
回顾并为当天的工作做准备 我们有一个关于玩家移动的概念,玩家可以在点之间移动,而且当这些点移动时,玩家会随之移动。现在这个部分基本上已经在工作了。我们本来想实现的一个功能是:当玩家移动到某个点时,这个点能“…...
基于DWT的音频水印算法
基于离散小波变换(DWT)的音频水印算法是一种结合信号处理与信息隐藏的技术,旨在将版权信息或标识隐蔽地嵌入音频信号中,同时保证不可感知性和鲁棒性。以下是该算法的核心步骤及关键技术点: 1. 算法基本原理 DWT…...
小刚说C语言刷题—1700请输出所有的2位数中,含有数字2的整数
1.题目描述 请输出所有的 2 位数中,含有数字 2 的整数有哪些,每行 1个,按照由小到大输出。 比如: 12、20、21、22、23… 都是含有数字 2的整数。 输入 无 输出 按题意要求由小到大输出符合条件的整数,每行 1 个。…...

文件上传Ⅲ
#文件-解析方案-执行权限&解码还原 1、执行权限 文件上传后存储目录不给执行权限(即它并不限制你上传文件的类型,但不会让相应存有后门代码的PHP文件执行,但是PNG图片是可以访问的) 2、解码还原 数据做存储,解…...
Ubuntu中配置【Rust 镜像源】
本篇主要记录Ubuntu中配置Rust编程环境时,所需要做的镜像源相关的配置 无法下载 Rust 工具链 通过环境变量指定 Rust 的国内镜像源(如中科大或清华源)。 方法一:临时设置镜像 export RUSTUP_DIST_SERVERhttps://mirrors.ustc.e…...
Room数据库
Room数据库 Room是Android Jetpack组件中的一款SQLite数据库抽象层框架,旨在简化本地数据库操作,提供编译时SQL校验、类型与安全、与LiveData/Flow无缝集成等特性。 1. 什么是Room 定义: Room 是 Android Jetpack 提供的一个 ORMÿ…...

基于深度学习的工业OCR数字识别系统架构解析
一、项目场景 春晖数字识别视觉检测系统专注于工业自动化生产监控、设备运行数据记录等关键领域。系统通过高精度OCR算法,能够实时识别设备上显示的关键数据(如温度、压力、计数等),并定时存储至Excel文件中。这些数据对于生产过…...

go-中间件的使用
中间件介绍 Gin框架允许开发者在处理请求的过程中加入用户自己的钩子(Hook)函数这个钩子函数就是中间件,中间件适合处理一些公共的业务逻辑比如登录认证,权限校验,数据分页,记录日志,耗时统计 1.定义全局中间件 pac…...