文章目录
🍁序
🍁一、字符输入函数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位时按实际长度输出) %-md m含义同上。左对齐输出 %ld l(小写字母)表示输出“长整型”数据 %m1d 指定长整型输出宽度m位,左边补空格;否则,按实际位数输出 %0md,%0m1d 0(数字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 按实际宽度输出一个字符串 %ms m指定宽度(不足时左补空格,大于时按实际宽度输出) %-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++的小伙伴们可以私我拿到免费安装包