当前位置: 首页 > news >正文

从0开始学习C++ 第一课:你的第一个C++程序

第一课:你的第一个C++程序

当然可以。让我们从C++的基础开始,我们的第一课将覆盖以下几个主题:

  1. 程序结构
  2. 编写和运行你的第一个C++程序
  3. 基本的输入输出(I/O)

第一课:你的第一个C++程序

在C++中,所有的程序都从一个主函数开始执行,这个主函数被称为main。这个函数的返回类型是int,表示函数返回一个整数给操作系统。返回值0通常表示程序成功执行。

下面是一个最基本的C++程序:

#include <iostream> // 包含头文件iostream,它包含了处理输入输出的功能// main函数 - 程序的入口点
int main() {std::cout << "Hello, World!"; // 输出消息到控制台return 0; // 告诉操作系统程序已成功执行完成
}
代码解释:
  • #include <iostream> 是一个预处理指令,它告诉编译器包含(即插入)标准输入输出流库的内容到程序中。这个库包含了std::cout用来输出数据到标准输出设备(通常是屏幕)。

  • int main() 定义了主函数。每个C++程序都必须有一个main函数,它是程序开始执行的地方。

  • std::cout 是C++中的一个输出流对象,用于向标准输出设备(如屏幕)发送数据流。操作符<<被用于将数据发送到cout

  • "Hello, World!" 是一个字符串字面量,被发送到标准输出。

  • return 0; 语句结束main函数的执行,并将返回值0返回给操作系统。在这个上下文中,0通常表示程序执行成功并正常退出。

编译和运行你的程序

要运行上面的程序,你需要将其保存在一个文件中,通常使用.cpp作为文件扩展名(例如hello_world.cpp)。然后你需要一个C++编译器来编译并运行你的程序。以下是一些常见的编译器:

  • GCC (GNU Compiler Collection)
  • Clang
  • Microsoft Visual C++

在命令行中,你可以使用下面的命令来编译程序:

g++ hello_world.cpp -o hello_world

这将使用g++(GCC的C++编译器)编译你的程序。-o hello_world指定了输出的可执行文件名。编译成功后,你可以通过以下命令运行你的程序:

./hello_world

运行上述命令后,你应该会在控制台看到输出:

Hello, World!

恭喜你,你刚刚完成了使用C++的第一课,并成功运行了你的第一个程序!

目录
第二课:C++中的输入和输出(I/O)

相关文章:

从0开始学习C++ 第一课:你的第一个C++程序

第一课&#xff1a;你的第一个C程序 当然可以。让我们从C的基础开始&#xff0c;我们的第一课将覆盖以下几个主题&#xff1a; 程序结构编写和运行你的第一个C程序基本的输入输出&#xff08;I/O&#xff09; 第一课&#xff1a;你的第一个C程序 在C中&#xff0c;所有的程…...

Dubbo-admin监控中心

监控中心 Dubbo-admin监控中心执行操作启动provider和consumer项目进行测试总体流程 Dubbo-admin监控中心 dubbo-admin下载路径 git clone https://github.com/apache/dubbo-admin.git图1-1 dubbo-admin项目文件展示 执行操作 # 启动zookeeper# 前端 cd dubbo-admin-ui npm i…...

216. 组合总和 III - 力扣(LeetCode)

题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 输入示例 k 3, n 7输出示例 [[1,2,…...

LeetCode-题目整理【5】:O(1) 时间插入、删除和获取随机元素

RandomizedSet结构体存在切片和哈希表的原因&#xff1a; 变长数组由于可以根据下标定位到特定元素&#xff0c;因此可以在 O(1)的时间内完成获取随机元素操作&#xff0c;但是由于无法在 O(1) 的时间内判断元素是否存在&#xff0c;因此不能在 O(1) 的时间内完成插入和删除操作…...

服务器感染了.wis[[Rast@airmail.cc]].wis勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 在当今数字化的时代&#xff0c;恶意软件攻击已经变得越来越复杂和狡猾&#xff0c;[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis[[Rastairmail.cc]].wis勒索病毒是其中的一种新威胁。本文91数据恢复将深入介绍[[MyFilewaifu.club]].wis [[backupwaif…...

ContentNegotiationManagerFactoryBean 内容协商

一.什么是内容协商 简单点说&#xff0c;就是同一资源,可以有多种表现形式&#xff0c;比如xml、json等&#xff0c;具体使用哪种表现形式&#xff0c;是可以协商的。 这是RESTfull的一个重要特性&#xff0c;Spring Web MVC也支持这个功能。 1.Spring MVC REST是如何决定采用…...

html css js 开发一个猜数字游戏

以下是一个使用HTML、CSS和JS开发的简单猜数字游戏的示例&#xff1a; HTML代码&#xff1a; <!DOCTYPE html> <html> <head><title>猜数字游戏</title><link rel"stylesheet" type"text/css" href"style.css&quo…...

HDD 东山再起,单块 30TB 起步新品想要颠覆储存行业

不得不承认&#xff0c;这年头机械硬盘&#xff08;HDD&#xff09;是越来越不受待见了。 体积大&#xff0c;耗电高&#xff0c;速度慢等多年祖传特点无不脱离当前消费者所追求的轻量化&#xff0c;高性能。 个人消费市场不约而同选择全面奔向固态硬盘&#xff08;SSD&#x…...

【网络安全】-基本工具msf

secure 1、有此漏洞的目标主机2、无此漏洞的目标主机&#xff08;常用&#xff09; ps.本着兴趣爱好&#xff0c;加强电脑的安全防护能力&#xff0c;并严格遵守法律和道德规范。msf&#xff08;metasploit framework&#xff09;是一个开源的渗透测试框架&#xff0c;用于开发…...

Vue3的ref和reactive

目录 1、ref的基本使用 2、reactive的基本使用 3、ref操作dom 4、ref与reactive的异同 1、ref的基本使用 ref创建数据可以是基本类型也可以是引用类型 ref函数创建响应式数据&#xff0c;返回值是一个对象 模版中使用ref数据,省略.value&#xff0c;js代码中不能省略 获…...

Flink编程——风险欺诈检测

Flink 风险欺诈检测 文章目录 Flink 风险欺诈检测背景准备条件FraudDetectionJob.javaFraudDetector.java 代码分析执行环境创建数据源对事件分区 & 欺诈检测输出结果运行作业欺诈检测器 欺诈检测器 v1&#xff1a;状态欺诈检测器 v2&#xff1a;状态 时间完整的程序期望的…...

Day37 贪心算法 part06 738. 单调递增的数字 968. 监控二叉树

贪心算法 part06 738. 单调递增的数字 968. 监控二叉树 738. 单调递增的数字 class Solution { public:int monotoneIncreasingDigits(int n) {string strNum to_string(n);int tag strNum.size();for(int i strNum.size()-1; i>1; i--){if(strNum[i]<strNum[i-1]){…...

SpringBoot Redis入门(四)——Redis单机、哨兵、集群模式

单机模式&#xff1a;单台缓存服务器&#xff0c;开发、测试环境下使用&#xff1b;哨兵模式&#xff1a;主-从模式&#xff0c;提高缓存服务器的高可用和安全性。所有缓存的数据在每个节点上都一致。每个节点添加监听器&#xff0c;不断监听节点可用状态&#xff0c;一旦主节点…...

获取数组中的第一个、第二个、第三个......元素

常规操作可以直接使用索引&#xff08;下标&#xff09;获取&#xff1a; const arr [5,8,6,9,10] const first arr[0] //5 const second arr[1] //8 const third arr[2] //6 不使用索引&#xff0c;如何获取&#xff1a; const [first] [5,8,6,9,10] //…...

前端面试题(持续更新~~)

文章目录 一、基础1、数组常用的方法2、数组有哪几种循环方式&#xff1f;分别有什么作用&#xff1f;3、字符串常用的方法4、原型链5、闭包6、常见的继承7、cookie 、localstorage 、 sessionstrorage区别8、数组去重方法9、http 的请求方式10、数据类型的判断方法11、cookie …...

ubuntu下无法访问和ping通github的一种解决方法

近期在ubuntu下突然无法访问github了&#xff0c;ping也无法ping通&#xff0c;尝试过更换不同的网络也无济于事。后来在https://blog.csdn.net/weixin_48544978/article/details/133899687 这个文章中找到了解决办法。 运气比较好&#xff0c;只按照文章中的第一步将http://…...

C#,入门教程(28)——文件夹(目录)、文件读(Read)与写(Write)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(27)——应用程序&#xff08;Application&#xff09;的基础知识https://blog.csdn.net/beijinghorn/article/details/125094837 C#知识比你的预期简单的多&#xff0c;但也远远超乎你的想象&#xff01; 与文件相关的知识&#xf…...

开源大数据集群部署(六)Keytab文件生成

作者&#xff1a;櫰木 Keytab文件用于在不输入密码的情况下对主体&#xff08;用户或服务&#xff09;进行身份验证。以下是创建Kerberos身份验证的步骤。 1、创建keytab文件 除了使用明文密码登录之外&#xff0c;Kerberos还可以使用keytab密码文件登陆&#xff0c;现在为te…...

图神经网络X项目|基于图神经网络的电商行为的预测(5%)

文章目录 Jupyter Notebook 学习人工智能的好帮手数据集数据集下载数据集调用数据集应用技巧——获取不重复的编号数据集应用技巧——随机采样数据集应用技巧——抽取前N项进行模拟测试 数据集构建技巧一——查看数据集构建进度 Jupyter Notebook 学习人工智能的好帮手 【Jupy…...

仰暮计划|“说是操场,那就是个土坡,我们在那儿上边种种树啊,拔拔草,有的时候还会有同学来喂喂羊啥的,这都是我们的娱乐”

我是1948年农历二月份在河南省许昌市五女店镇的一个乡村里边出生的。从我记事的时候&#xff0c;中华人民共和国就已经成立了。当时是好多年&#xff0c;经历了三大改造呀、生产队呀、大队呀&#xff0c;乱七八糟的很多&#xff0c;估计你们现在这些孩子们啊&#xff0c;都没有…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...

CMS内容管理系统的设计与实现:多站点模式的实现

在一套内容管理系统中&#xff0c;其实有很多站点&#xff0c;比如企业门户网站&#xff0c;产品手册&#xff0c;知识帮助手册等&#xff0c;因此会需要多个站点&#xff0c;甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...

Heygem50系显卡合成的视频声音杂音模糊解决方案

如果你在使用50系显卡有杂音的情况&#xff0c;可能还是官方适配问题&#xff0c;可以使用以下方案进行解决&#xff1a; 方案一&#xff1a;剪映替换音色&#xff08;简单适合普通玩家&#xff09; 使用剪映换音色即可&#xff0c;口型还是对上的&#xff0c;没有剪映vip的&…...

Python打卡训练营学习记录Day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...