顺序结构 ( 五 ) —— 数据输入输出 【互三互三】

文章目录

🍁序

🍁一、字符输入函数getchar

🍁二、字符输出函数putchar

🍁三、通过cout流输出数据

🍁四、通过cin流读入数据

🍁五、格式化输入函数scanf

 🍁六、格式化输出函数printf

 🍁七、几种输入输出格式的几点说明

 🍁总结 

 🍁备注


🚀欢迎互三👉:程序猿方梓燚 💎💎
🚀所属专栏:C++教程💎

🚀关注博主,后期持续更新系列文章

🚀如果有错误感谢请大家批评指出,及时修改

🚀感谢大家点赞👍收藏⭐评论✍ 

 ​

🍁

C++语言中没有提供专门的输入输出语句,所有的输入输出都是调用标准库函数中的输入输出函数来实现的。在使用时,应在源程序的开头使用如下语句:
 

#include<iostream>#include<cstdio>using namespace std;

C++语言标准函数库提供了许多标准输入、输出函数,本节将介绍6个最基本的输入、输出函数:字符输入getchar,字符输出putchar,格式化输入scanf,格式化输出prinf,流输入cin,流输出cout

🍁一、字符输入函数getchar

【格式】

getchar函数是接收从键盘输入的单个字符数据。它是一个无参函数,其语法格式为:

getchar();

【说明】

1)通常把输入的字符赋予一个字符变量,构成赋值语句。例如:

char  ch;
ch=getchar();

   
2) getchar函数只能接受单个字符,输入数字也按字符处理。

3)输入多于一个字符时,只接收第一个字符。

4) getchar函数等待用户输入,直到按回车键才结束,可用于暂停程序的运行,直到输入一个回车键。

5)如果在程序中连续有两个以上getchar()函数,应该一次性输入所需字符,最后再按回车键,否则会把回车作为一个字符传给后面的getchar()函数。

【例题】

 1. 利用getchar函数接收键盘输入。

#include<cstdio>#include<iostream>using namespace std;int main(){ char ch;ch=getchar();                      //读入字符cout<<"input="<<ch<<endl;}

🍁二、字符输出函数putchar

【格式】

putchar函数是字符输出函数,功能是向标准输出设备(如显示器)输出单个字符数据,其语法格式为:

 putchar(ch);                      //其中,ch为一个字符变量或常量。

【例题】 

2.利用putchar 函数输出字符。

#include<cstdio>
#include<iostream>
using namespace std;
int main(){char c='B';                          //定义字符变量c并赋值'B'putchar(c);                       //输出该字符putchar('\x42');                 //用转义字符输出字母'B'putchar(0x42);                 //用16进制ASCII码值输出字母'B'putchar(66);                     //用10进制ASCII码值输出字母'B'
}

运行结果:BBBB

🍁三、通过cout流输出数据

流插入运算符<<和cout结合在一起使用,可向显示器屏幕输出数据。

  • 格式1:
  •       功能:它把表达式的值输出到屏幕上,该表达式可以是各种基本类型的常量、变量或者由它们组成的表达式。输出时,程序根据表达式的类型和数值大小,采用不同的默认格式输出,大多数情况下可满足要求。
  •                若要输出多个数据,可以连续使用流插入运算符
  • 格式2:
  •      功能:将表达式的内容一项接一项的输出到屏幕上。

🍁四、通过cin流读入数据

流读取运算符>>和cin结合在一起使用,可从键盘输入数据。

格式1: 功能:是从键盘读取一个数据并将其赋给“变量”。

说明:在使用cin输入的时候必须考虑后面的变量类型。如果你要求输入一个整数,在 >>后面必须跟一个整型变量,如果要求一个字符,后面必须跟一个字符型变量。
 

声明一个整型变量age然后等待用户从键盘输入到cin并将输入值存储在这个变量中。     

int age;     cin >> age; 

⭐⭐⭐也可以连续使用>>,实现从键盘对多个变量输入数据。

格式2: 这要求从键盘输入的数据的个数、类型与变量相一致。从键盘读取数据时,各数据之间要有分隔符,分隔符可以是一个或多个空格键、回车键等。

用cin 让用户输入多个数据 。     

cin >> a >> b; 

等同于:     
 

cin >> a;     cin >> b;

🍁五、格式化输入函数scanf

scanf函数的功能是格式化输入任意数据列表,其一般调用格式为:

scanf(格式控制符,地址列表)

【说明】  

1)地址列表中给出各变量的地址,可以为变量的地址,也可以为字符串的首地址。        

2)格式控制符由%和格式符组成,作用是将要输入的字符按指定的格式输入,如%d,%c等。

scanf函数的格式符
格式符说  明
d,i用于输入十进制整数
u以无符号十进制形式输入十进制整数
o(字母)用于输入八进制整数
x用于输入十六进制整数
c用于输入单个字符
s用于输入字符串(非空格开始,空格结束,字符串变量以'\0'结尾)
f用于输入实数(小数或指数均可)
e与f相同(可与f互换)

scanf函数的附加格式说明符

附加格式说  明
l(字母)用于长整型数(%ld、%lo、%lx)或double型实数(%lf、%le)
h用于短整型数(%hd、%ho、%hx)
域宽(一个整数)指定输入所占列宽
*表示对应输入量不赋给一个变量

 🍁六、格式化输出函数printf

printf函数的功能是格式化输出任意数据列表,其一般调用格式为:

printf(格式控制符,输出列表)

【说明】

1)格式控制由输入格式说明和普通字符组成,必须用双引号括起来。

      ●格式说明由%和格式字符组成,作用是将要输出的字符转换为指定的格式,如%d,%c等。

      ●普通字符是在输出时原样输出的字符,一般在显示时起提示作用。    

2)输出列表是需要输出的一组数据(可以为表达式和变量),各参数之间用“,”分开。要求格式说明和各输出项在数量和类型上要一一对应,否则将会出现意想不到的错误。

printf函数的格式符
格式符说  明
d(或i)以带符号的十进制形式输出整数,正数的(+)号省略不输出
u以无符号十进制形式输出整数
x(或X)以十六进制无符号形式输出整数(不输出前导符0x)
o(字母)以八进制无符号形式输出整数(不输出前导符数字0)
c输出一个字符
s输出字符串
f以小数形式输出单、双精度,隐含输出6位小数        
e(或E)以指数形式输出单、双精度,隐含输出6位小数
g(或G)自动选用%f、%e或%E格式中输出宽度较小的一种使用
d格式符
参 数说  明
%d输出数字长为变量数值的实际长度
%md输出m位(不足补空格,大于m位时按实际长度输出)
%-mdm含义同上。左对齐输出
%ldl(小写字母)表示输出“长整型”数据
%m1d指定长整型输出宽度m位,左边补空格;否则,按实际位数输出
%0md,%0m1d0(数字0)表示位数不足m时补0
例如,对如下程序段
int i=1;
long  j=123;
printf("%d,%2d,%03d,%1d,%-4ld,%05ld",i,i,i,j,j,j);

输出:1, 1,001,123,123 ,00123

f格式符
参  数说  明
%f按实数格式输出,整数部分按实际位数输出,6位小数
%m.nf总位数m(含小数点),其中有n位小数         
%-m.nf同上,左对齐
s格式符
参  数说  明
%s按实际宽度输出一个字符串
%msm指定宽度(不足时左补空格,大于时按实际宽度输出)
%-ms左对齐,不足时右补空格
%m.ns输出占m个字符位置,其中字符数最多n个,左补空格
%-m.ns同上,右补空格

【例题】 

某幼儿园里,有5个小朋友编号为1,2,3,4,5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果(键盘输入),现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果有多余的糖果,则立即吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果。

【分析】题目中有5位小朋友,他们初始时糖果的数目不确定,用a,b,c,d,e分别存储5个小朋友的糖果数,初始值由键盘输入

程序如下:

#include<cstdio>
using namespace std;
int main(){int a,b,c,d,e;scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);a=a/3;b=b+a;e=e+a;  		          //1号小朋友分糖b=b/3;c=c+b;a=a+b;  		         //2号小朋友分糖c=c/3;d=d+c;b=b+c;  		         //3号小朋友分糖d=d/3;e=e+d;c=c+d; 		          //4号小朋友分糖e=e/3;a=a+e;d=d+e; 		          //5号小朋友分糖printf("%5d%5d%5d%5d%5d\n",a,b,c,d,e); //%5d按5位宽度输出return 0;
}

运行结果:

输入:8  9  10  11  12    

输出:   11    7    9   11   6

 🍁七、几种输入输出格式的几点说明

  • 1、cin和cout在Dev C++中只能调用<iostream>库,而其他输入输出格式要调用<stdio.h>库或<cstdio>库。
  • 2、cin和cout属于C++的概念,调用时涉及输入输出流,而scanf和printf属于C的概念,是C语言的标准输入/输出库中的函数,所以在时效上,scanf和printf优于cin、cout,对于大数据的输入输出,通常情况下应该用scanf、printf。    
  • 3、对于普通数据的输入输出,cin和cout比较方便,而在格式化方面,scanf和printf比较容易。cin效率比scanf低很多,尤其输入数据达到20万以上时非常明显,在100万时cin读入就会超时。    
  • 4、scanf和printf也缺点,cin和cout能够自动识别变量的数据类型,因此,在进行输入输出时,不需要指定数据类型,printf和scanf函数在输入输出时需指定数据类型。

 🍁总结 

有不懂的地方可以si我,和我一起学习C++吧。

 🍁备注

还没有下载DEV-C++的小伙伴们可以私我拿到免费安装包

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

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

相关文章

【python】QWidget父子关系,控件显示优先级原理剖析与应用实战演练

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【C语言】C语言编译链接和Win32API简单介绍

目录 翻译环境和运行环境翻译环境编译器预处理&#xff08;预编译&#xff09;编译链接 执行环境 Win32API是什么控制台程序控制台获取坐标COORDGetStdHandle函数GetConsoleCursorinfo函数CONSOLE_CURSOR_INFOSetConsoleCursorInfo函数SetConsoleCursorPostion函数GetAsyncKeyS…

数字化时代的供应链管理综合解决方案

目录 引言背景与意义供应链管理综合解决方案的目标 &#x1f4c4;供应链管理系统主要功能系统优势 &#x1f4c4;物流管理系统主要功能系统优势 &#x1f4c4;订单管理系统主要功能应用场景 &#x1f4c4;仓储管理系统系统亮点主要功能系统优势 &#x1f4c4;商城管理系统主要功…

【MyBatis】——入门基础知识必会内容

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

MySql性能调优01-[数据结构和索引]

数据结构和索引 什么是索引索引的种类常见索引数据结构和区别二叉树 红黑树 什么是索引 索引的种类 在Mysql中索引是在存储引擎层实现的&#xff0c;而不是在服务层实现的 按数据结构分&#xff1a;Btree索引、Hash索引、Full-text索引按存储结构分&#xff1a;聚簇索引、非聚…

数据结构——约瑟夫环C语言链表实现

约瑟夫环问题由古罗马史学家约瑟夫&#xff08;Josephus&#xff09;提出&#xff0c;他参加并记录了公元66—70年犹太人反抗罗马的起义。在城市沦陷之后&#xff0c;他和40名死硬的将士在附近的一个洞穴中避难。起义者表示“宁为玉碎不为瓦全”&#xff0c;约瑟夫则想“留得青…

go语言Gin框架的学习路线(六)

gin的路由器 Gin 是一个用 Go (Golang) 编写的 Web 框架&#xff0c;以其高性能和快速路由能力而闻名。在 Gin 中&#xff0c;路由器是框架的核心组件之一&#xff0c;负责处理 HTTP 请求并将其映射到相应的处理函数上。 以下是 Gin 路由器的一些关键特性和工作原理的简要解释…

第十八章 Express multer 文件上传

本章将学习Express multer 文件上传 &#xff0c;因为Nest 的文件上传是基于 Express 的中间件 multer 实现的&#xff0c;所以在学习 Nest 文件上传之前&#xff0c;我们先学习下 multer 包 首先先创建 multer-test 文件夹执行下面代码 创建package.json npm init -y接着安装…

单例模式的简单理解

单例模式 前言一、单例模式是什么二、单例模式的使用饿汉模式单线程下的懒汉模式多线程下的懒汉模式&#xff08;优化懒汉模式&#xff09;加锁 三、总结 前言 设计模式是将一些经典的问题场景进行整合归纳&#xff0c;并提供一些解决方案&#xff0c;相当于一种“套路”。 熟…

数据仓库介绍_维度表(三)

维度表概述 维度表是维度建模的基础和灵魂。前文提到&#xff0c;事实表紧紧围绕业务过程进行设计&#xff0c;而维度表则围绕业务过程所处的环境进行设计。维度表主要包含一个主键和各种维度字段&#xff0c;维度字段称为维度属性。 表设计步骤 确定维度&#xff08;表&…

SQL 针对上面的salaries表emp_no字段创建索引idx_emp_no

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 针对salaries…

【开源合规】开源许可证风险场景详细解读

文章目录 前言关于BlackDuck许可证风险对比图弱互惠型许可证举个例子具体示例LGPL系列LGPL-2.0-onlyLGPL-2.0-or-laterLGPL-2.1-onlyLGPL-2.1-or-laterLGPL-3.0-onlyLGPL-3.0-or-laterMPL系列MPL-1.0MPL-1.1MPL-2.0EPL系列EPL-1.0EPL-2.0互惠型许可证GPL系列GPL-1.0GPL-2.0GPL-…

3.相机标定原理及代码实现(opencv)

1.相机标定原理 相机参数的确定过程就叫做相机标定。 1.1 四大坐标系及关系 &#xff08;1&#xff09;像素坐标系&#xff08;单位&#xff1a;像素&#xff08;pixel&#xff09;&#xff09; 像素坐标系是指相机拍到的图片的坐标系&#xff0c;以图片的左上角为坐标原点&a…

合合信息大模型加速器亮相WAIC大会:文档解析与文本识别新突破

合合信息大模型加速器亮相WAIC大会&#xff1a;文档解析与文本识别新突破 文章目录 合合信息大模型加速器亮相WAIC大会&#xff1a;文档解析与文本识别新突破前言合合信息TextIn平台&#xff1a;智能文档处理的领军者文档解析引擎&#xff1a;百页文档秒级处理大模型的发展背景…

【机器学习】独立成分分析(ICA):解锁信号的隐秘面纱

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 独立成分分析&#xff08;ICA&#xff09;&#xff1a;解锁信号的隐秘面纱引言I…

若依 ruoyi-vue SpringBoot highlight-textarea 输入框敏感词关键词高亮标红(二)

参考文章&#xff0c;非常感谢大佬的分享 实现可高亮的输入框 — HighlightTextarea GitHub:highlight-textarea 可看作者上一篇文章 若依 ruoyi-vue SpringBoot聊天敏感词过滤sensitive-word&#xff08;一&#xff09; 效果图 审核时&#xff0c;输入框高亮敏感词&#xff…

vue3 + tsx 表格 Action 单独封装组件用法

前言 先上图看右侧列 action 的 UI 效果&#xff1a; 正常来说&#xff0c;如果一个表格的附带 action 操作&#xff0c;我们一般会放在最右侧的列里面实现&#xff0c;这个时候有些UI 框架支持在 SFC 模板里面定义额外的 solt&#xff0c;当然如果不支持&#xff0c;更通用的…

LabVIEW实现LED显示屏视觉检测

为了满足LED显示屏在生产过程中的严格质量检测需求&#xff0c;引入自动化检测系统是十分必要的。传统人工检测方式存在检测强度高、效率低、准确性差等问题&#xff0c;自动化检测系统则能显著提高检测效率和准确性。视觉检测系统的构建主要包含硬件和软件两个部分。 视觉系统…

新兴市场游戏产业爆发 传音以技术抢抓机遇 ​

随着年轻人口的增加以及互联网的普及,非洲、中东等新兴市场正迎来游戏产业的大爆发,吸引着全球游戏企业玩家在此开疆辟土。中国出海企业代表传音以新兴市场需求为中心,秉持本地化创新理念不断加强游戏等关键领域技术攻关凭借移动终端设备为全球玩家带来极致游戏体验,收获了消费…

谷粒商城实战笔记-26-分布式组件-SpringCloud-Gateway网关核心概念原理

微服务架构中&#xff0c;API网关扮演着至关重要的角色&#xff0c;它不仅作为微服务间的通信桥梁&#xff0c;还负责安全、监控、限流等职责。 一&#xff0c;网关的发展历程 SpringCloud的网关经历了两代的迭代和更替。 第一代网关是早期的Zuul&#xff0c;由 Netflix 开发…