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

C++ 编程入门(一)—— Hello World

  • C++ 是什么
  • 环境搭建
  • 第一个 C++ 程序
  • 本篇结语

C++ 是什么

C++ 是一种面向对象的计算机程序设计语言,由美国 AT&T 贝尔实验室的 Bjarne Stroustrup 在 20 世纪 80 年代初期发明并实现(最初这种语言被称作 “C with Classes” 带类的 C 语言)。它是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。 C++ 是 C 语言的继承,进一步扩充和完善了 C 语言,成为一种面向对象的程序设计语言。C++ 这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做 “C plus plus”、“CPP”。

作者:d41d8c
链接:https://www.zhihu.com/question/381100690/answer/1092776507
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

环境搭建

首先需要安装编译器,C++ 的编译器是 g++,在 MacOS 上只需要在 App Store 安装 Xcode 即可。安装后打开终端,执行 gcc -vg++ -v,获得正常的版本输出则为安装成功。

然后再安装合适的 IDE (integrated development environment,集成开发环境)。主流的 IDE 主要是 CLionQt CreatorVS CodeCode::Blocks 等。CLion 评价最高,但收费也较高,不过可以破解。Qt Creator 主要为 C++ 的图形化扩展库 Qt 设计,高亮和代码提示都比较好,缺点是编写项目必须要用 qmakecmake 进行编译,自由度不够高。VS Code 作为一款轻量级 IDE,其几乎所有功能均由插件实现,编写 C++ 的体验不如前两个 IDE,优点是自由度比较高。Code::Blocks 则是一款比较老的 C++ IDE,效果也不错。笔者建议还是去找破解版的 CLion

第一个 C++ 程序

进入存放代码的文件夹(建议设置一个固定放代码的文件夹),并且新建一个文件,文件名改为 hello.cpp(后缀名改为 .cpp),然后用 IDE 打开这个文件。或者也可以在 IDE 中新建文件。

打开文件后编辑文件内容如下:

#include <iostream>using namespace std;int main()
{cout << "Hello World!" << endl;return 0;
}

这样,你的第一个 C++ 程序就完成了。你编写的 .cpp 文件称为源代码。

接下来,你需要将源代码编译为可执行文件进行运行。通常 IDE 都可以实现自动编译。如果你想要自己手动编译,则需要打开终端,进入到源代码所在的文件夹,然后运行 g++ -o hello hello.cpp,其中 -o 后的参数为输出的文件名,编译成功则会得到名为 test 的可执行文件,再执行 ./test 即可运行。

运行结果应该是输出一行 Hello World

本篇结语

在本文中你学会了搭建 C++ 的编程环境,并且编写并编译了第一个 C++ 程序。在之后的文章中你会学会如何自己编写 C++ 程序,利用 C++ 实现自己期望的功能。

相关文章:

C++ 编程入门(一)—— Hello World

C 是什么环境搭建第一个 C 程序本篇结语 C 是什么 C 是一种面向对象的计算机程序设计语言&#xff0c;由美国 AT&T 贝尔实验室的 Bjarne Stroustrup 在 20 世纪 80 年代初期发明并实现&#xff08;最初这种语言被称作 “C with Classes” 带类的 C 语言&#xff09;。它是一…...

openlayers系列:加载arcgis和geoserver在线离线切片

https://www.freesion.com/article/1751396517/ 1.背景 有个项目需要使用openlayer加载各种服务上发布的数据&#xff0c;坐标系也不同&#xff0c;我们都知道openalyer默认可以加载EPAG:3857,要加载4490的坐标系的数据需要重新定义一下&#xff0c;之后再加载。一想起要重新…...

《人工智能安全》课程总体结构

1 课程内容 人工智能安全观&#xff1a;人工智能安全问题、安全属性、技术体系等基本问题进行了归纳整理。人工智能安全的主要数据处理方法&#xff0c;即非平衡数据分类、噪声数据处理和小样本学习。人工智能技术赋能网络空间安全攻击与防御&#xff1a;三个典型实例及攻击图…...

unity关于匀速移动某些值的方法

可能很多人会用到Verctor3.Lerp、Mathf.LerpUnclamped等等 这种其实不是匀速 看一下这个整体差不多的逻辑 public static float Lerp(float a, float b, float t){return a (b - a) * t;};这个逻辑就是&#xff0c;从a值到b值&#xff0c;返回一个a值加&#xff08;b值-a值&…...

解决VScode下载太慢的问题记录

最近突然想重新下载vscoded便携免安装版&#xff0c;发现下载很慢&#xff0c;于是乎查询一下&#xff0c;以便记录 下载地址 VScode官方网站&#xff1a; https://code.visualstudio.com/ 根据个人的需求选择下载&#xff0c;页面加载下载需要等一会&#xff0c; 然后就会…...

Gitlab服务器备份恢复及系统升级

居安思危&#xff0c;思则有备&#xff0c;有备无患。 基于此&#xff0c;申请了一个测试服务器&#xff0c;准备先安装同版本服务器&#xff0c;按照最新的数据进行恢复&#xff0c;然后再将现在的服务器升级到Gitlab的最新版本&#xff0c;记录一下完整的过程&#xff0c;以…...

docker入门讲解

目录 第 1 章 Docker核心概念与安装 为什么使用容器? Docker是什么 Docker设计目标 Docker基本组成 容器 vs 虚拟机 Docker应用场景 Linux 安装 Docker 第 2 章 Docker镜像管理 镜像是什么 镜像从哪里来? 镜像与容器联系 镜像常用管理命令 镜像存储核心技术:联…...

【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据))

【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 基于卷积神经网络(Convolutional Neural Network,CNN)的数据回归预测是一种常见的机器学习方法,适用于处理具有空…...

在Springboot集成Activiti工作流引擎-引入、调用,测试【基础讲解】

工作流 通过计算机对业务流程自动化执行管理 他主要解决的是使在多个参与者之间按照某种“预定义规则”自动进行传递稳定 信息或任务的过程 通俗来讲 业务上一个玩着的审批流程 比如请假&#xff0c;出差 外出采购等 工作流引擎就是来解决流程问题的 提高我们的工作效率 如果…...

Java书签 #解锁MyBatis的4种批量插入方式及ID返回姿势

1. 今日书签 项目开发中&#xff0c;我们经常会用到单条插入和批量插入。但是实际情况可能是&#xff0c;项目初期由于种种原因&#xff0c;在业务各处直接使用单条插入SQL进行开发&#xff08;未开启批处理&#xff09;&#xff0c;在后面的迭代中&#xff0c;系统性能问题渐…...

在react项目中如何引入国际化

react-i18next 在 React 项目中引入国际化&#xff08;Internationalization&#xff0c;简称 i18n&#xff09;可以使用第三方库来实现。其中&#xff0c;最常用且流行的国际化库是 react-i18next&#xff0c;它基于 i18next 实现&#xff0c;提供了方便易用的国际化功能。下…...

spring学习笔记十三

注解实现管理第三方Bean和为第三方Bean注入资源 1、添加pom坐标 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency> 2、SpringConfig配置类 Configuratio…...

react native 本地存储 AsyncStorage

An asynchronous, unencrypted, persistent, key-value storage system for React Native. Async Storage 只能用来储存字符串数据&#xff0c;所以为了去储存object类型的数据&#xff0c;得先进行序列化&#xff08;JSON.stringify()&#xff09;当你想要使用数据的时候&…...

Postgresql数据库中的时间类型汇总

PostgreSQL数据库有以下几种时间类型 1 日期 date&#xff1a;表示日期&#xff0c;格式为YYYY-MM-DD。 2 时间 time&#xff1a;表示时间&#xff0c;格式为HH:MI:SS。 3 日期和时间 timestamp&#xff1a;表示日期和时间&#xff0c;格式为YYYY-MM-DD HH:MI:SS。 4 带…...

算法刷题Day 51 最佳买卖股票时机含冷冻期+买卖股票的最佳时期含手续费

Day 51 动态规划 309. 最佳买卖股票时机含冷冻期 关键是要画出状态转移图 然后根据状态转移图来写状态转移方程 class Solution { public:int maxProfit(vector<int>& prices) {int len prices.size();vector<vector<int>> dp(len, vector<int&g…...

编程导航算法村 第五关 | 白银挑战

编程导航算法村 第五关 | 白银挑战 用栈实现队列 LeetCode 232题 class MyQueue {private Stack<Integer> stack; // 保存private Stack<Integer> tempstack; // 临沭队列public MyQueue() {stack new Stack<>();tempstack new Stack<>();}public…...

(十六十七)时序数据库是怎么存储用户名和密码的从InfluxDB OSS迁移数据

以下内容来自 尚硅谷&#xff0c;写这一系列的文章&#xff0c;主要是为了方便后续自己的查看&#xff0c;不用带着个PDF找来找去的&#xff0c;太麻烦&#xff01; 第 16 章 时序数据库是怎么存储用户名和密码的 1、InfluxDB内部自带了一个用Go语言写的BlotDB&#xff0c;Blo…...

5分钟开发一个AI论文抓取和ChatGPT提炼应用

5分钟开发一个AI论文抓取和ChatGPT提炼应用 第一步 点击“即刻开始” -选择模板 python -修改标题 “AIPaper”&#xff0c;项目标识“AIPaper”&#xff0c;点击“创建项目” 第二步 在编程区域右侧AI区域&#xff0c;输入框输入以下内容&#xff1a; 请根据下面的内容&…...

SK5代理与网络安全:保障爬虫隐匿性与HTTP连接稳定性

一、SK5代理简介 SK5代理&#xff0c;即socks5代理&#xff0c;是一种网络协议&#xff0c;用于在客户端和服务器之间进行数据传输。相比其他代理协议&#xff0c;如HTTP代理&#xff0c;SK5代理具有更高的性能和安全性&#xff0c;支持TCP和UDP连接&#xff0c;并可以处理更复…...

基于4G网络的嵌入式设备远程升级系统设计与实现(学习一)

摘要 随着无线通信技术的不断更新发展&#xff0c;嵌入式设备的联网应用领域得以大规模扩大&#xff0c;远程升级功能成为产品开发中必不可少的一部分。 本文对嵌入式设备远程升级进行了研究&#xff0c;在不改变设备硬件集成度基础上&#xff0c;设计实现了分离式升级的远程…...

Cesium快速入门到精通系列教程八:Primitive和Entity的相似点与不同点

在 Cesium1.95 中,Primitive和Entity是两种创建和管理三维对象的核心方式,它们在功能上有相似之处,但设计目标和使用场景差异明显。以下是详细对比: 一、相似点​​ 1、基础渲染目标​​ 两者均用于在 3D 场景中绘制图形(点、线、面、模型等)。 最终都会通过底层 WebGL…...

短视频 SEO 推广与视频广告投放的区别是什么_短视频 SEO 优化需要结合网站整体 SEO 策略吗

短视频 SEO 推广与视频广告投放的区别是什么_短视频 SEO 优化需要结合网站整体 SEO 策略吗 在当前数字化营销的浪潮中&#xff0c;短视频平台和视频广告投放已经成为许多企业和创作者推广内容、吸引观众的重要手段。对于SEO策略的理解和应用却常常存在误解。今天&#xff0c;我…...

玩转openrgb

缘由我的asus b760m有rgb&#xff0c;但是华硕Armoury Crate 确实比较臃肿&#xff0c;经常啥也没干它占用3-5%。而开源界有个openrgb&#xff0c;虽然看似简陋但是它小啊。于是采用python脚本openrgb来玩转它。本方案应该也适用于其他rgb主板。准备工作1、下载openrgb&#xf…...

数据库表的性能优化过程

问题背景做一个数据库表查看、标注与分析的工具软件。是数据库中表的信息&#xff08;information_schema.tables&#xff09;&#xff1b;是的数据字典文档&#xff0c;存储在本地文件中&#xff1b;是对的额外标注信息&#xff0c;存储在另一个数据库中。每一条&#xff0c;最…...

企业级离线OCR深度解析:5大策略实现高性能文字识别

企业级离线OCR深度解析&#xff1a;5大策略实现高性能文字识别 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语言库…...

DNMSI2C轻量级声级计驱动库:IEC标准SPL数据采集

1. 项目概述DNMSI2C 是一款专为 DNMS Teensy 声音传感器模块设计的轻量级 IC 驱动库&#xff0c;面向嵌入式音频监测场景提供标准化、低开销的声压级&#xff08;SPL&#xff09;数据采集能力。该库不依赖浮点运算或动态内存分配&#xff0c;完全适配资源受限的微控制器平台&am…...

AI营销SaaS榜单评测:原圈科技如何助力品牌客户破局增长?

本文深度探讨AI营销行业趋势与SaaS产品评选标准。在众多解决方案中&#xff0c;原圈科技的AI营销SaaS平台凭借其领先的技术底层能力、产品成熟度及客户成功案例&#xff0c;在市场适配度与服务落地性等多个维度下表现突出&#xff0c;被普遍视为企业实现精细化营销升级的有力选…...

汇智信科-机场数字孪生系统

机场数字孪生系统以数字化孪生技术构建机场全要素虚拟映射&#xff0c;精准还原机场、跑道、塔台等设施及飞机运行状态&#xff0c;支持多维度动态监测与可视化管控&#xff1b;通过模拟飞机调度、跑道滑行等全流程作业场景&#xff0c;覆盖机场多角色业务协同&#xff0c;同时…...

模拟前端电路设计:高精度信号处理核心技术解析

1. 模拟前端电路设计概述 模拟前端电路是连接真实世界与数字系统的关键桥梁&#xff0c;它负责将传感器采集的微弱模拟信号进行调理、放大和转换&#xff0c;使其能够被后续的数字系统正确处理。作为一名从事硬件设计十余年的工程师&#xff0c;我处理过从医疗设备到工业控制的…...

HsMod:炉石传说个性化增强工具 玩家的全方位游戏体验优化方案

HsMod&#xff1a;炉石传说个性化增强工具 玩家的全方位游戏体验优化方案 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 你是否曾因炉石传说中繁琐的操作流程而感到沮丧&#xff1f;是否希望拥有…...