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

探索C嘎嘎的奇妙世界:第二关---C++的输入与输出

1 C++的输入与输出:

        新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物, 那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的呢?

        在 C++的不断发展中,出现了许多新的头文件,它们为编程带来了更多的便利和强大的功能。话不多说,请看代码:

#include<iostream>
using namespace std;

        在讲解上述代码之前,首先我们要引进一个新朋友<iostream>,我们可以理解为是c语言中<stdio.h> 的升级版本,功能和库方面,都更加全面,同时也是是 C++中极为重要的一个头文件!

        

        同时在上述代码中,我们还写了一行"using namespace std"这可是我们上期说过的命名空间展开啊,注意stdC++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中,说明在C++中头文件中的函数也被命名空间包起来了,这样就更方便,我们对其中的函数进行使用了~

ps:std是C++标准库的命名空间,如何展开std使用更合理呢?

1. 在日常练习中,建议直接using namespace std即可,这样就很方便。

2. using namespace std 展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型 /
/ 函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模
大,就很容易出现。所以建议在项目开发中使用,像 std::cout 这样使用时指定命名空间 +
using std::cout 展开常用的库对象 / 类型等方式。

1 1 输出:

        下面引入正题,C++是怎么进行输出的呢?请看代码:

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

在上述代码中:有一个这样"cout"和"endl"这两个陌生面孔,让我来为你们一一讲解

1.1.1 cout---预定义的的输出流:

        cout  (console output,控制台输出)是标准输出流对象。它可以通过使用操作符  <<  来依次输出各种类型的数据。我们可以用它输出整数、浮点数、字符串、字符等各种数据类型,例如:

cout << 10 << " " << 3.14 << " " << "Hello, C++!"<<endl;//   10 3.14 Hello, C++!

        它具有很强的灵活性和易用性,可以方便地将不同类型的数据组合在一起输出,并且输出的顺序与代码中指定的顺序一致。此外,还可以通过一些控制符来调整输出的格式,比如设置精度、换行等。 cout  是 C++中进行基本输出操作的重要工具,在程序开发中被广泛应用。

        那么endl的作用是什么呢?其实它可以等效为我们c语言中的换行符,有它就换行,没有就不用换行了

        接下来就让我们来看一下上述代码中"<<"这个操作符,不是我们C语言中的左移操作符吗?在这里当然不能这样理解,在C++中,我们赋予了它另外一种功能"插入运算符(Insertion Operator)"那我们就来了解一下这个操作符:

        "<<" 操作符通常被称为插入运算符(Insertion Operator)。它用于将数据输出到标准输出设备(通常是屏幕)。当使用 cout << 时,它会将右侧的值输出到屏幕上。<< 操作符可以连续使用,将多个值输出到同一行。它的主要作用是将数据从程序内部传递到外部输出设备,以便用户可以查看程序的运行结果。

1.2 输入:

        那么在C++中是怎么进行输入的呢?请看代码:

int i=0,j=0,k=0;
cin>>i>>j>>k;

        在上述代码中:我们又发现"cin"这样一个陌生的面孔让我来为你讲解:

1.2.1 cin---预定义的输入流:

        cin 是标准输入流对象,用于从标准输入(通常是键盘)读取数据。它是 iostream 库中的一个对象,可以使用提取运算符 >> 从输入流中读取数据,并将其存储到变量中。

        以下是 cin 的一些常见用法:
 
        1. 读取基本数据类型:可以使用 >> 运算符将输入流中的数据读取到基本数据类型的变量中,如整数、浮点数、字符等。

        2.读取字符串:可以使用 >> 运算符读取字符串,但它会在遇到空格或换行符时停止读取。如果要读取一整行字符串,可以使用 getline 函数。

        3.连续读取多个数据:可以使用 >> 运算符连续读取多个数据,每个数据之间用空格或换行符分隔。

        还有很多功能等后期再一一揭晓:

1.3  输入与输出的注意事项:

1. 使用 cout 标准输出对象 ( 控制台 ) cin 标准输入对象 ( 键盘 ) 时,必须 包含 < iostream > 头文件
以及按命名空间使用方法使用 std
2. cout cin 是全局的流对象, endl 是特殊的 C++ 符号,表示换行输出,他们都包含在包含 <
iostream > 头文件中。
3. << 是流插入运算符, >> 是流提取运算符
4. 使用 C++ 输入输出更方便,不需要像 printf/scanf 输入输出时那样,需要手动控制格式。
C++ 的输入输出可以自动识别变量类型。
5. 实际上 cout cin 分别是 ostream istream 类型的对象, >> << 也涉及运算符重载等知识,
这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有
一个章节更深入的学习 IO 流用法及原理。
6. 早期标准库将所有功能在全局域中实现,声明在 .h 后缀的头文件中,使用时只需包含对应
头文件即可,后来将其实现在 std 命名空间下,为了和 C 头文件区分,也为了正确使用命名空间,
规定 C++ 头文件不带 .h ;旧编译器 (vc 6.0) 中还支持 <iostream.h> 格式,后续编译器已不支持,因
推荐 使用 <iostream>+std 的方式。

7.关于coutcin还有很多更复杂的用法,比如控制浮点数输出精度,控制整形输出进制格式等 等。因为C++兼容C语言的用法,这些又用得不是很多,我们这里就不展开学习了。后续再一一讲解~

        那么就有小伙伴要问了,那我们在C语言中学习的“printf”和"scanf"还可以继续使用吗?回答是:当然!C++兼容C语言嘛,但是旧的不去新的不来嘛,慢慢适应的过程!!!

        到此C++中的输入和输出就讲解完毕了,希望这篇博客能给您带来一些启发和思考!那我们下次再一起探险喽,欢迎在评论区进行讨论~~~

        

相关文章:

探索C嘎嘎的奇妙世界:第二关---C++的输入与输出

1 C的输入与输出: 新生婴儿会以自己独特的方式向这个崭新的世界打招呼&#xff0c;C刚出来后&#xff0c;也算是一个新事物&#xff0c; 那C是否也应该向这个美好的世界来声问候呢&#xff1f;我们来看下C是如何来实现问候的呢? 在 C的不断发展中&#xff0c;出现了许多新的头…...

实现思路:Vue 子组件高度不固定下实现瀑布流布局

实现思路&#xff1a;Vue 子组件高度不固定下实现瀑布流布局 一、瀑布流布局基础实现原理 在深入解说不定高度子组件的瀑布流如何实现之前&#xff0c;先大体说一下子组件高度固定已知的这种实现原理&#xff1a; 有一个已知组件高度的数组。定义好这个瀑布流的列数&#xff…...

构建实时搜索与推荐系统:Elasticsearch与业务结合

在当今这个信息爆炸的时代&#xff0c;搜索引擎和推荐系统已成为我们日常生活中不可或缺的一部分。它们不仅帮助我们快速找到所需信息&#xff0c;还根据我们的喜好推荐相关内容&#xff0c;提升了用户体验。本文将探讨如何使用Elasticsearch构建实时搜索与推荐系统&#xff0c…...

鸿蒙 如何将base64的图片保存到相册

把一个base64图片 保存到鸿蒙手机 相册中怎么实现呢&#xff1f; 下面有2中方法 方案一&#xff1a;可以通过安全控件「保存控件&#xff08;SaveButton&#xff09;」实现。该控件对应媒体库写入特权。应用集成保存控件后&#xff0c;用户点击该控件&#xff0c;应用会获取1…...

高速公路智能管理系统:构建安全畅通的数字大动脉

随着城市化进程的加速和交通需求的增长&#xff0c;高速公路系统作为城市交通的重要组成部分&#xff0c;正承担着越来越多的交通运输任务。为了提升高速公路的安全性、便捷性和智能化管理水平&#xff0c;高速公路智能管理系统应运而生。本文将深入探讨高速公路智能管理系统的…...

基于Java自习室在线预约系统 的设计与实现

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…...

摄像头校准之白平衡畸变坏点

摄像头校准之白平衡&畸变&坏点 1. 源由2. 校准内容3. 畸变校准一、畸变模型二、校准步骤1. 准备工作2. 特征点检测3. 计算内参数和畸变系数4. 畸变校正 三、验证和优化1. 视觉验证2. 误差评估3. 参数优化 4. 白平衡校准一、白平衡基础二、自动白平衡&#xff08;AWB&am…...

【C++进阶】模板进阶与仿函数:C++编程中的泛型与函数式编程思想

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;栈和队列相关知识 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀模板进阶 &#x1f9e9;<&…...

OpenCV之cv::Scalar

在 OpenCV 中&#xff0c;cv::Scalar 是一个模板类&#xff0c;用于表示多通道的值。常用来表示颜色或其他具有多个分量的数据。在图像处理中&#xff0c;cv::Scalar 经常用于指定颜色。 cv::Scalar(255, 255, 255) 具体如何理解&#xff0c;取决于图像的颜色空间&#xff1a;…...

智能合约与身份验证:区块链技术的创新应用

一、引言 区块链&#xff0c;一个近年来备受瞩目的技术名词&#xff0c;已经从最初的数字货币领域扩展到了众多行业。那么&#xff0c;究竟什么是区块链&#xff1f;它为何如此重要&#xff1f;本文将深入剖析区块链技术的原理、应用及未来发展。 二、区块链的基本概念 区块…...

浔川身份证号码查询——浔川python科技社

Python获取身份证信息 公民身份号码是每个公民唯一的、终身不变的身份代码&#xff0c;由公安机关按照公民身份号码国家标准编制。每一个居民只能拥有一个唯一的身份证&#xff0c;它是用于证明持有人身份的一种法定证件。 身份证包含了个人的一些重要信息&#xff0c;比如&am…...

C++的标准容器及其应用

C的标准容器及其应用 数组&#xff08;array&#xff09;数组的特征应用实列 前向列表&#xff08;forward_list&#xff09;前向列表的特征应用实列 列表&#xff08;list&#xff09;列表的特征应用实列 有序映射&#xff08;map&#xff09;有序映射的特征应用实列 队列&…...

linux如何部署前端项目和安装nginx

要在Linux上部署前端项目并安装Nginx&#xff0c;你可以按照以下步骤操作&#xff1a; 安装Nginx: sudo apt update sudo apt install nginx 启动Nginx服务: sudo systemctl start nginx 确保Nginx服务开机自启: sudo systemctl enable nginx 部署前端项目&#xff0c;假设前…...

Coolify:24.2K 星星!使用全新、开源免费且自托管的替代方案,部署应用程序的最佳工具(停止使用 Vercel)

✨点击这里✨&#xff1a;&#x1f680;原文链接&#xff1a;&#xff08;更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号&#xff01;&#xff09; Coolify&#xff1a;24.2K 星星&#xff01;使用全新、开源免费且自托管的替代方案&#xff0c;部…...

Dubbo入门

Dubbo&#xff0c;听名字好像有点高大上&#xff0c;但实际上它就是个让不同的计算机程序之间能够互相交流的工具&#xff0c;专业点说&#xff0c;它是一个分布式服务框架。想象一下&#xff0c;你有好几个小团队&#xff0c;每个团队负责开发一个部分&#xff0c;最后这些部分…...

从零学习es8

配置 编辑 elasticsearch.yml xpack.security.enabled: true 单节点 discovery.type: single-node设置账号&#xff1a; elasticsearch-reset-password -u elastic 如果要将密码设置为特定值&#xff0c;请使用交互式 (-i) 参数运行该命令。 elasticsearch-reset-password -i…...

String.compareTo()方法详解

Java 中的 String.compareTo() 方法用于按字典顺序比较两个字符串。这个方法实现了 Comparable 接口&#xff0c;返回一个整数&#xff0c;表示字符串的相对顺序。 方法签名 public int compareTo(String anotherString)返回值 一个负整数&#xff1a;如果当前字符串在字典顺…...

Nintex流程平台引入生成式人工智能,实现自动化革新

工作流自动化提供商Nintex宣布在其Nintex流程平台上推出一系列新的人工智能驱动改进。这些增强显著减少了文档化、管理和自动化业务流程所需的时间。这些新特性为Nintex流程平台不断扩展的人工智能能力增添了新的亮点。 Nintex首席产品官Niranjan Vijayaragavan表示&#xff1a…...

永远不要做房间里“最聪明的人”(早懂早受益)

听好了&#xff0c;茶客&#xff0c;我要向你解释一些事情。 你的工作和职责是让客户认为他是房间里最聪明的人。 如果你完成了这项任务之后&#xff0c;还有多余的精力&#xff0c;应该用它来让你的高级合伙人显得像是房间里第二聪明的人。 只有履行了这两项义务之后&#xff…...

Leetcode 3177. Find the Maximum Length of a Good Subsequence II

Leetcode 3177. Find the Maximum Length of a Good Subsequence II 1. 解题思路2. 代码实现 题目链接&#xff1a;3177. Find the Maximum Length of a Good Subsequence II 1. 解题思路 这一题我一开始的思路是直接使用暴力的动态规划的方式进行实现&#xff0c;结果遇到了…...

程序员做电子书产品变现的复盘(2)

赚钱有多种&#xff0c;简单分为两类。 &#xff08;1&#xff09;手停口停型&#xff0c;这种工作在你积极从事时可能每天能带来数千甚至上万的收入&#xff0c;但一旦停止工作&#xff0c;收入就会大幅下降甚至归零&#xff0c;例如我们的日常工资。 &#xff08;2&#xf…...

Java中的JVM是什么?如何调优JVM的性能?

Java中的JVM&#xff08;Java Virtual Machine&#xff09;是一个虚构出来的计算机&#xff0c;是一个规范&#xff0c;它在运行Java程序时扮演着核心角色。调优JVM的性能可以通过内存管理、垃圾回收、编译器优化等方法来提升Java应用程序的性能和稳定性。 Java中的JVM&#x…...

大型医院手术麻醉系统源码,前端采用Vue,Ant-Design开发,稳定成熟

医院手麻系统源码&#xff0c;手术麻醉信息系统&#xff0c;C#源码 医院手术麻醉信息系统包含了手术申请、排班、术前、术中、术后&#xff0c;直至出院的全过程。通过与相关医疗设备连接&#xff0c;与大屏幕显示公告相连接&#xff0c;实现了手术麻醉临床应用数据链全打通。…...

Linux安装Docker | 使用国内镜像

环境 CentOS7 先确认能够上网 curl www.baidu.com返回该输出说明网络OK 步骤一&#xff1a;安装gcc 和 gcc-c yum -y install gccyum -y install gcc-c步骤二&#xff1a;安装Docker仓库 yum install -y yum-utils接下来配置yum的国内镜像 yum-config-manager --add-re…...

redis易懂快速安装(linux)2024

1.首先打开虚拟机系统 2.打开终端&#xff0c;输入su - 输入管理员密码&#xff0c;进入管理员用户 3.输入inconfig查看ip地址 4.打开final shell 连接虚拟机&#xff0c;输入ip和root用户以及密码 5.连接成功 6.输入 cd /usr/local/src/ 进入要安装的文件夹 6.点击上传按钮…...

关于数据库存储【\】转义字符反斜杠丢失的问题

背景 开始的时候&#xff0c;发现一个很奇怪的现象 富文本编辑器&#xff0c;前端存储带有"的内容&#xff0c;回显的时候解析就会出问题 后来发现&#xff0c;其实是只要是需要带有\进行转义的内容就会有问题 排查 从前端提交数据&#xff0c;后端获取数据&#xff…...

Unity3D 如何做好版本控制

目前项目这样版本控制&#xff1a; 1、在unity里&#xff0c;应该只对Assets&#xff08;包含,meta&#xff09;和ProjectSettings这两个文件夹做版本控制&#xff0c;其他的文件都是unity或工具生成出来的。 2、设置project setting ->editor setting-> Asset seriali…...

移动端消息中心,你未必会设计,发一些示例出来看看。

APP消息中心是一个用于管理和展示用户收到的各种消息和通知的功能模块。它在APP中的作用是提供一个集中管理和查看消息的界面&#xff0c;让用户能够方便地查看和处理各种消息。 以下是设计APP消息中心的一些建议&#xff1a; 1. 消息分类&#xff1a; 将消息按照不同的类型进…...

Non-zero exit code pycharm

目录 windows 设置conda代理&#xff1a; linux Conda 使用代理 4. 修改 Conda SSL 验证 pycharm 报错 exceted command pip 设置代理 Non-zero exit code 科学上网后&#xff0c;pip安装时警告报错 WARNING: Retrying (Retry(total0, connectNone, readNone, redirectNo…...

西门子学习笔记12 - BYTE-REAL互相转化

这是针对于前面MQTT协议的接收和发送数组只能是BYTE数组做出的对应的功能块封装。 1、BYTE-REAL转化 1、把byte数组转成字符串形式 2、把字符串转成浮点数 2、REAL-BYTE转化 1、把浮点数转成字符串 2、把字符串转成Byte数组...