C++青少年简明教程:C++程序结构

C++青少年简明教程:C++程序结构

一个简单的C++程序源码如下:

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

下面解析一下。

1. #include <iostream>

这行代码的意思是:导入iostream头文件

#include是导入的意思,一个 #include 命令只能包含一个头文件。

头文件可以理解为具备特定功能的工具包,我们可以直接拿过来使用。

iostream头文件,它是input(输入) output(输出) stream(流)的缩写,翻译过来就是:输入输出流。提供了 cin对象(一般情况下代表键盘) 和 cout对象(一般情况下代表显示器),分别用于从标准输入读取流 和 向标准输出写入流。

使用 cout 进行输出时需要紧接着使用“<<”操作符——插入符(inserter),使用 cin 进行输入时需要紧接着使用“>>”操作符——提取符(extractor)。

C++ 的开发者认为数据输入和输出的过程也是数据传输的过程,数据像水一样从一个地方流动到另一个地方,所以 C++ 中将此过程称为“流”,实现此过程的类称为“流类”。上图中的箭头可以看作水管子。

cin用来在程序执行期间给变量输入数据,一般格式为:

cin>> <变量名1>[>> <变量名2> >>…>> <变量名n>];

其中:>> 称为“提取运算符”,程序执行到这条语句便暂停下来,等待从键盘上输入相应数据,直到所列出的所有变量均获得值后,程序方继续执行。

下面是cin的示意图

cin可以同时为多个变量输入数据,在各输入数据之间用一个或多个空白(空格,回车,Tab)作为间隔符,按Enter键结束。

如cin>>x1>>x2>>x3;

等价于

cin>>x1;

cin>>x2;

cin>>x3;

析取运算符>>后只能出现变量名,且应该是系统预定义的简单类型。

cin 能够自动识别数据类型。

int a,b;

char c;

double d;

cin>>a>>b>>c>>d;

可以输入:23 34 A 34.5。

cout实现将数据输出到显示器的操作,一般格式为:

cout<< <表达式1> [<< <表达式2> <<…<< <表达式n>];

其中:<<  称为“插入运算符”,将紧跟其后的表达式的值输出到显示器上当前光标位置。

下面是cout的示意图

cin和cout的书写形式很灵活,如果有多个变量,即使类型不相同,也可以写在同一个语句中。

2.using namespace std;

这行代码翻译过来就是:使用标准命名空间

using: 使用

namespace: 命名空间

std: standard的缩写,意思是标准

命名空间:名称空间是用来区分不同名称空间中的同名属性,主要是解决多人同时编写大型程序时名字产生冲突问题,如防止不同人写的函数出现重名出现问题的情况。使用格式为:

using namespace 命名空间名;

使用iostream头文件时,cout、cin、endl都放在名称空间std里面。可以用std::cout这种方式来指定使用的cout是std里面的cout,使用using namespace std就不需要用std::指定。

3.主函数

系统默认的你这个程序运行的入口,换句话说,当你的源代码通过编译,成为一个程序,在计算机上运行时,它是从int main()(其中int代表这个函数的返回值类型)这里开始执行。

主函数声明后,下面有一对花括号({ }),花括号里面所表达的就是你这个函数想要干什么。

返回值:本程序主函数的最后有一句话:return 0,它的意思是主函数结束后向操作系统返回一个0值,也就是说,如果你的程序顺利地结束了,你的操作系统会得到一个0值,如果运行出错,那么得到的就也许是另外一个值了。主函数的返回值我们一般默认为0,而且大多数算法竞赛中也会要求主函数的返回值为0。

注释

一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。注释是给人看的。通过注释,你可以向其他开发人员或自己记录代码的意图、功能、实现方法等相关信息。注释不会被编译器解析和执行。

在c++中,内容较少的简单注释常用“//”,内容较长的常用“/*……*/ ”。

 “//”作注释,有效范围只有一行,即本行有效,不能跨行。

“/*……*/”注释为多行。只要在开始处有一个“/*”,在最后一行结束处有一个“*/”即可。

例如:

/*
这是一个使用注释的例子,
作者:某某
日期:
*/ 
// 引入”输入输出流“头文件
#include <iostream>
// 使用标准命名空间
using namespace std;// 主函数入口
int main() {// 在控制台上打印出"Hello World"文本,后面加一个回车cout << "Hello World" << endl;return 0;  // 程序结束
}

C++中严格区分大小写,但不严格限制程序的书写格式,不过从可读性角度出发,程序书写应采用内缩格式,一般一个语句占一行。

C++中使用的标点符号,如()"" '' + - * /:,等等是半角英文的,字符串中(字符串内部)的除外。新手要特别注意这点。

【全角和半角

☆全角:是一种电脑字符,占两个字节。

在全角中,字母和数字等与汉字一样占据着等宽的位置。

☆半角:是指一个字符占一个字节。

半角是ASCII方式的字符。 】

C++代码书写规范简介https://blog.csdn.net/cnds123/article/details/119110061

在C++中,可以使用<cstdio>来包含C语言标准库中的输入输出函数。不过,在C++中更推荐使用<iostream>头文件和iostream库来进行输入和输出操作。使用iostream库可以方便地使用C++的流式输入输出操作符(<< 和 >>)来进行数据的输入和输出。

所以,如果你在C++程序中需要进行输入输出操作,建议使用<iostream>头文件和iostream库,而不是<cstdio>头文件。这样可以更好地发挥C++的特性和优势。

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

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

相关文章

Python包管理工具

1、python包管理 在java开发生态&#xff0c;我们早已习惯使用maven或者gradle来构建和管理java项目。通过构建工具&#xff0c;我们可以非常方便对项目的依赖、打包、部署等进行管理&#xff0c;极大的减少手工操作的复杂性。 如果使用python开发生态&#xff0c;我们同样可…

k8s概述及核心组件

一、k8s概述 1.1 引言 docker compose 单机编排工具 有企业在用 docker swarm 能够在多台主机中构建一个docker集群 基本淘汰集群化管理处理工具 容器 微服务封装 dockerfile 编写成镜像 然后进行发布 dockerfile 可以写成shell脚本&#xff08;函数做调…

Kafka应用Demo:指派分区订阅消息消费

环境准备 Kafka环境搭建和生产者样例代码与《Kafka应用Demo&#xff1a;按主题订阅消费消息》相同。 消费者代码样例 public class KafkaConsumerService {private static final Logger LOGGER LoggerFactory.getLogger(KafkaConsumerService.class);private static final S…

【DFT】高 K/金属栅极阈值电压偏移的密度泛函模型

文章《Density functional model of threshold voltage shifts at High-K/Metal gates》&#xff0c;是由R. Cao、Z. Zhang、Y. Guo、J. Robertson等人撰写&#xff0c;发表在《Solid-State Electronics》期刊上。通过密度泛函理论&#xff08;Density Functional Theory, DFT&…

Redis(无中心化集群搭建)

文章目录 1.无中心化集群1.基本介绍2.集群说明 2.基本环境搭建1.部署规划&#xff08;6台服务器&#xff09;2.首先删除上次的rdb和aof文件&#xff08;对之前的三台服务器都操作&#xff09;1.首先分别登录命令行&#xff0c;关闭redis2.清除/root/下的rdb和aof文件3.把上次的…

大数据技术架构

一、hadoop 1、基础知识 1.1、概念 ①Hadoop集群特点&#xff1a;高可靠性、高效性、高可拓展性、高容错性、成本低、运行在Linux操作系统上、支持多种编程语言 ②Hadoop的由来&#xff1a; 谷歌的三驾马车对应的开源软件描述GFS&#xff1a;海量数据怎么存HDFS分布式文件…

电脑windows系统压缩解压软件-Bandizip

一、软件功能 Bandizip是一款功能强大的压缩和解压缩软件&#xff0c;具有快速拖放、高速压缩、多核心支持以及广泛的文件格式支持等特点。 Bandizip软件的功能主要包括&#xff1a; 1. 支持多种文件格式 Bandizip可以处理多种压缩文件格式&#xff0c;包括ZIP, 7Z, RAR, A…

oracle 数据库找到UDUMP的文件名称

oracle 数据库找到UDUMP的文件名称 select p.value||\||i.instance_name||_ora_||spid||.trc as "trace_file_name" from v$parameter p ,v$process pro, v$session s, (select sid from v$mystat where rownum1) m, v$instance i where lower(p.name)user_dump_…

orbslam2基础

目录 一、 内容概要二、 orbslam2基础介绍三 、 orbslam2安装3.1 安装依赖3.2 安装orbslam23.3 下载Kitee数据集 四、 进行ORBSLAM2仿真五、 心得体会六、 参考链接 一、 内容概要 orbslam2基础介绍orbslam2安装orbslam2使用案例&#xff1a;orbslam2kitti数据集序列图像 二、…

转发_重定向

1.Servlet/JSP单独使用的弊端 当我们用Servlet或者JSP单独处理请求的时候 Servlet&#xff1a;拼接大量的html字符串 造成可读性差、难以维护JSP&#xff1a;使得html和Java代码互相交织 也造成了可读性差、难以维护的后果 最合适的做法就是两者结合使用 2.ServletJSP处理请…

OpenCV4.9如何将失焦图片去模糊滤镜(67)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV4.9的基于距离变换和分水岭算法的图像分割(66) 下一篇 :OpenCV4.9去运动模糊滤镜(68) 目标 在本教程中&#xff0c;您将学习&#xff1a; 什么是退化图像模型失焦图像的 PSF 是多少如何恢复…

【Linux调试器】:gdb的使用(常见指令)

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux调试器gdb的使用&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通…

消除模型盲区,让透明件身后模型无所遁形

使用SOLIDWORKS设计产品出工程图&#xff0c;当模型中存在透明零部件时&#xff0c;由于位置摆放可能会遮挡其他零件。 这会影响零件在工程图中展示装配关系。 通常我们会采用剖视图或改变视图方向来展示被遮挡的零件。 SOLIDWORKS 2023版本发布了工程图中透视透明的零部件功能…

分布式锁讲解

概括 分布式锁是一种用于在分布式系统中实现同步机制的锁。在单机系统中&#xff0c;我们可以使用如Java中的synchronized关键字或者 ReentrantLock来实现线程间的同步&#xff0c;但在分布式系统中&#xff0c;由于多个节点&#xff08;服务器&#xff09;之间的并发操作&am…

Meta-SR: A Magnification-Arbitrary Network for Super-Resolution

CVPR2019https://github.com/XuecaiHu/Meta-SR-Pytorch 问题引入 首个解决任意尺度超分问题的模型&#xff0c;借鉴了meta-learning的思想&#xff1b;weight prediction strategy(meta-learning)&#xff1a;神经网络的权重是由另一个神经网络预测的&#xff0c;而不是通过从…

计算机中GPU快不行的几个标志,看下有没有你遇到的

GPU是处理图形密集型任务的主要组件。尽管它非常耐用,但它最终会磨损并开始失效。在到达生命的终结之前,它通常会显示出即将发生故障的迹象,需要及时修复或更换。本指南详细介绍了这些标志。 在我们开始之前 在深入研究GPU故障的迹象之前,重要的是要承认,下面提到的一些…

PXE批量部署,一键安装配置多台Linux系统

目录 一、PXE批量部署的优点 二、搭建PXE远程安装服务器 1. 实验初始化设置 2. 一键安装软件包 3. 复制 vmlinuz、initrd.img、pxelinux.0文件 4. 配置PE启动菜单配置文件 5. 修改配置文件&#xff0c; 启动各个软件服务 6. kickstart自动应答文件修改启动菜单配置文件…

什么是静态住宅代理IP?

静态住宅代理&#xff08;也称为静态ISP代理&#xff09;是最流行的代理类型之一。它们也是隐藏您的身份并保持在线匿名的最佳方法之一。您为什么要使用住宅代理而不是仅使用常规代理服务&#xff1f;下面我具体分享。 一、什么是静态住宅代理&#xff1f; 首先&#xff0c;我…

【iOS】事件传递与响应机制

文章目录 前言事件UIEvent一、事件传递遍历顺序 二、手势识别三、响应机制UIResponder&#xff08;响应者&#xff09;响应者链 四、相关应用扩大button点击范围穿透事件 总结 前言 提到响应者链与事件传递&#xff0c;如果看过其他人的博客&#xff0c;经常能看到这经典的三张…

苍穹外卖Day06笔记

疯玩了一个月&#xff0c;效率好低&#xff0c;今天开始捡起来苍穹外卖~ 1. 为什么不需要单独引入HttpClient的dependency&#xff1f; 因为我们在sky-common的pom.xml中已经引入了aliyun-sdk-oss的依赖&#xff0c;而这个依赖低层就引入了httpclinet的依赖&#xff0c;根据依…