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

news2024/7/30 15:06:12

文章目录

🍁序

🍁一、字符输入函数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.coloradmin.cn/o/1917638.html

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

相关文章

最简单的vue3组件之间传值

localStorage 是 HTML5 引入的一个 Web Storage API 的一部分&#xff0c;它允许网页在用户的浏览器上存储数据。localStorage 提供了一种持久化的本地存储方案&#xff0c;数据不会因为浏览器关闭而丢失&#xff0c;除非用户或脚本显式地删除它们。 localStorage 是一种非常实…

代码架构你想过吗?

过去的一段时间&#xff0c;我常发现我接手的服务、自己从0开始搭建起来的服务&#xff0c;整个服务代码的架构都比较混乱&#xff0c;很难去维护迭代。常见的有两种 平铺在根目录的。层次不清晰的&#xff0c;逻辑分别散落在各个层次中 我经过一段时间的分析&#xff0c;我总…

实现分布式锁的常用三种方式

分布式锁概述 我们的系统都是分布式部署的&#xff0c;日常开发中&#xff0c;秒杀下单、抢购商品等等业务场景&#xff0c;为了防⽌库存超卖&#xff0c;都需要用到分布式锁。 分布式锁其实就是&#xff0c;控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的…

【VUE实战项目】使用typescript重构项目

前言 本文是博主vue实战系列中的一篇&#xff0c;本系列不是专业的前端教程&#xff0c;是专门针对后端熟悉前端的。前面我们用vue实现了一个基础的管理系统&#xff0c;前文专栏地址&#xff1a; https://blog.csdn.net/joker_zjn/category_12469788.html?spm1001.2014.300…

java线程锁synchronized的几种情况

一、对象方法锁 1、成员方法加锁 同一个对象成员方法有3个synchronized修饰的方法&#xff0c;通过睡眠模拟业务操作 public class CaseOne {public synchronized void m1(){try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { e.printStackTrace()…

七款好用的公司电脑监控软件推荐|2024年电脑监控软件干货整理!

在现代企业管理中&#xff0c;电脑监控软件成为提高员工生产力、确保数据安全和防止信息泄露的重要工具。以下是七款适合公司使用的电脑监控软件推荐 固信软件https://www.gooxion.com/ 1. 固信软件 功能特点&#xff1a; 实时屏幕监控和行为分析。 网站访问历史记录和详细…

pytorch-RNN存在的问题

这里写目录标题 1. RNN存在哪些问题呢&#xff1f;1.1 梯度弥散和梯度爆炸1.2 RNN为什么会出现梯度弥散和梯度爆炸呢&#xff1f; 2. 解决梯度爆炸方法3. Gradient Clipping的实现4. 解决梯度弥散的方法 1. RNN存在哪些问题呢&#xff1f; 1.1 梯度弥散和梯度爆炸 梯度弥散是…

C++超市外卖小程序-计算机毕业设计源码62482

摘要 随着社会生活节奏加快和消费习惯的变化&#xff0c;外卖服务成为人们日常生活中不可或缺的一部分。超市外卖作为新兴业态备受关注&#xff0c;然而传统外卖平台在推荐精准度和用户体验方面存在挑战。 本研究旨在基于协同过滤算法&#xff0c;结合C语言和MySQL数据库&#…

信息化安全管理怎么做

企业如何做好安全管理工作?检查频次多了怕影响子正常生产经营&#xff0c;效益低下&#xff0c;检查频次少了又担心管控不住。”这是安全管理部综合业务室的困惑&#xff0c;也是很多企业的困惑。面对企业在安全管理中的困惑与挑战&#xff0c;采用信息化平台与精细化管理策略…

Java研学-Shiro安全框架(四)

六 SpringBoot集成Shiro认证 1 分析 Shiro提供认证授权功能&#xff0c;所以SpringBoot中不需再编写自定义注解&#xff0c;权限拦截&#xff0c;登录拦截&#xff0c;登录登出。Shiro 环境中有三个封装对象Subject &#xff0c;SecurityManager和Realms&#xff0c;SpringBoo…

hcip暑假第二次作业

ip配置如下 配置缺省路由 [R1]ip route-static 0.0.0.0 0 12.0.0.2 -------设置缺省路由 [R1]ip route-static 0.0.0.0 0 21.0.0.2 [R2]ip route-static 0.0.0.0 0 22.0.0.2 [R3]ip route-static 0.0.0.0 0 23.0.0.2 [R4]ip route-static 0.0.0.0 0 24.0.0.2 [R5]ip route…

python如何计算两个时间相差多少秒钟,分钟,小时,天,月,年

使用场景&#xff1a;在做上课记录系统的时候&#xff0c;有上课开始时间和上课结束时间&#xff0c;需要计算这两个时间的插值&#xff0c;以分钟为单位。 封装方法如下&#xff1a; from datetime import datetimedef sub_seconds(date1: str "2024-07-11 12:33:33&q…

编程范式之事件驱动编程

目录 前言1. 定义2. 特点2.1 异步性2.2 解耦2.3 可扩展性2.4 高度响应 3. 适用场景3.1 用户界面开发3.2 网络编程3.3 游戏开发3.4 物联网&#xff08;IoT&#xff09; 4. 优点4.1 提高效率4.2 灵活性和可扩展性4.3 解耦和模块化4.4 高响应性 5. 缺点5.1 复杂性增加5.2 调试困难…

Spring中如何操作Redis

Spring毕竟是Java中的一个主流框架&#xff0c;如何在这个框架中使用Redis呢&#xff1f; 创建项目并引入相关依赖 然后进行创建。 至此就将Redis的相关依赖引入进来了。 编写Redis配置 将application.properties修改成application.yml 然后编写如下配置&#xff1a; spr…

昇思学习打卡-16-热门LLM及其他AI应用/K近邻算法实现红酒聚类

文章目录 算法原理距离定义模型构建 算法原理 K近邻算法可以用在分类问题和回归问题上&#xff0c;它的原理如下&#xff1a;要确定一个样本的类别&#xff0c;可以计算它与所有训练样本的距离&#xff0c;然后找出和该样本最接近的k个样本&#xff0c;统计出这些样本的类别并…

青否数字人手机端APP抖音开播完整教程!

1.开播--所需硬件 安卓手机设备--支持 直播手机推荐型号&#xff1a;配备了麒麟980,骁龙865,天玑1000以上的处理器的安卓手机&#xff0c;运营内存不低于6G 网络宽带&#xff1a;上下行宽带稳定在10Mbps以上&#xff08;普通家用1000M宽带的上行速度大约为30Mbps&#xff0c;最…

二分查找模板及例题

文章目录 模板一&#xff1a;使用场景&#xff1a;解释&#xff1a;例题&#xff1a;数的范围题意&#xff1a; 代码&#xff1a; 模板二&#xff1a;使用场景&#xff1a;解释&#xff1a;例题&#xff1a;[Building an Aquarium](https://codeforces.com/problemset/problem/…

Tita的OKR:最新20个HR人力资源OKR案例

OKR是一个目标设定框架&#xff0c;可以提高员工的参与度&#xff0c;同时帮助人们专注于最重要的事情。 然而&#xff0c;OKR最大的挑战之一是设定正确的目标&#xff0c;我与很多人力资源专业人士交谈过&#xff0c;他们证明他们的OKR并不完美。 这就是为什么我们收集了最佳…

【2024_CUMCM】机器学习导论、不平衡分类模型(重采样)、交叉验证(附代码)

目录 基本概念 机器学习概念与过程 机器学习的分类 学习任务 分类与回归区分 学习方式 不平衡分类模型 什么是不平衡分类 下采样的优点和缺点 过采样的优点和缺点 交叉验证 what 过拟合 常见方法 K折交叉验证&#xff08;K-Fold Cross Validation&#xff09; …