C语言程序设计简单的输入和输出.ppt

上传人:小飞机 文档编号:5426454 上传时间:2023-07-05 格式:PPT 页数:48 大小:1,018.50KB
返回 下载 相关 举报
C语言程序设计简单的输入和输出.ppt_第1页
第1页 / 共48页
C语言程序设计简单的输入和输出.ppt_第2页
第2页 / 共48页
C语言程序设计简单的输入和输出.ppt_第3页
第3页 / 共48页
C语言程序设计简单的输入和输出.ppt_第4页
第4页 / 共48页
C语言程序设计简单的输入和输出.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《C语言程序设计简单的输入和输出.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计简单的输入和输出.ppt(48页珍藏版)》请在三一办公上搜索。

1、第二章简单的输入和输出,该节的学习内容,学点什么哪?,熟练掌握字符输入/输出函数熟练的应用输入/输出函数的使用方法。,本章的学习难点,熟练掌握字符的输入/输出函数及有格式输入/输出函数的使用方法。scanf和printf函数的格式控制问题。,本章目录,基本输入输出操作的实现输入输出操作中的分析,基本输入输出操作的实现,字符输入输出操作的实现,有格式输入输出操作的实现,字符输入输出操作的实现,例如:#include,字符标准输入,字符标准输出,C语言本身不提供输入输出语句,输入输出操作是由函数实现的。,C语言的输入输出函数的处理程序不在C语言本身,因而在运行时要连接函数库,但必须在程序中将相应的

2、文件头部加载。,在计算机终端键盘上输入数据。,在终端显示器上输出数据。,字符输入函数getchar,1.作用:从终端(或系统隐含指定的输入设备)输入一个字符,由函数返回该字符。,2.举例:char c;a c=getchar();a,字符输出函数putchar,1.作用:向系统隐含指定的输出设备即终端显示器输出一个字符。,2.格式:char c;putchar(c);,程序举例,#include main()char c;c=getchar();putchar(c);,有格式输入输出操作的实现,格式输出函数printf,格式输入函数scanf,格式输出函数printf,该函数按指定的格式输出多

3、个、不同类型的数据。,printf(格式控制,输出表列)格式控制:也称为转换控制字符串。它包含格式转换说明和需原样输出的普通字符。输出表列:要输出其值的表达式表列,该表列中的参数可为多个,也可没有。输出列表中变量的位置、个数和类型必须与格式控制字符串中的格式转换说明符对应。,功能:,格式:,格式说明,格式说明是从“%”开始到其后第一个格式说明符。,格式说明符:d格式符 o格式符 x格式符u格式符 c格式符 s格式符f格式符 e格式符 g格式符,d格式符,以带符号的十进制整形格式输出整数。,d 按整形数据的实际长度输出,%ld 输出长整形数据,a=3;b=24;printf(%d%d,a,b);

4、324,%md%0md 按长度为m输出整形数据,a=123;b=12345;printf(%4d,%05d,%d,a,a,b);123,00123,12345,功能:,格式:,由于是将内存单元的各位的值(0或1)按八进制形式输出,因此输出的数值不带符号。,o格式符,以8进制、无符号形式输出整数。,o%mo,对于长整形数可以用“lo”格式输出。,功能:,格式:,以进制无符号形式输出整数。,x格式符,x%mx,对于长整形数可以用“lx”格式输出。,功能:,格式:,一个有符号整数(int型)也可用%u输出;反之,一个unsigned型也可用%d、%o,%x输出。,u格式符,以10进制无符号形式输出u

5、nsigned数据。,u%mu,眼见为实,数值+类型,int以补码存储,-1,177777,ffff,65535-2,177776,fffe,65534,功能:,格式:,c格式符,用来输出一个字符。,c%mc,c=a;printf(%c,%3c,c,c);a,a注:上行的%c和c的意义不同。,其值在0-255内的整数,可用c或d输出。,int c=65;printf(%c,%d,c,c);A,65,一个字符,可用c或d输出。,char c=a;printf(%c,%d,c,c);a,97,功能:,格式:,s格式符,输出字符串,直到遇到字符串结束标识0为止。,s 按字符串的实际长度输出。,pri

6、ntf(%s,china);china,ms 输出的字符串占m列。,printf(%3s,%7s,china,china);china,china1.当字符串实际长度m,则按实际长度输出。2.当字符串实际长度m。则左端补空格。,-ms 输出的字符串占m列。,printf(%3s,%-7s,china,china);china,china 1.当字符串实际长度m,则按实际长度输出。2.当字符串实际长度m。则右端补空格。,m.ns 输出的字符串占m列。,printf(%7.2s,china);ch1.共输出m位,右端输出n个字符,如果实际长度m,则在左端用空格填补。2.当字符串实际长度n。则n为字

7、符串长度。,-m.ns 输出的字符串占m列。,printf(%-7.2s,%.4s,china,china);ch,chin1.共输出m位,左端输出n个字符,如果实际长度m,则在右端用空格填补。2.当字符串实际长度n。则n为字符串长度。3.当m没有时自动地m=n=4。,功能:,格式:,f格式符,以小数形式输出实数。,f 以系统指定的形式输出实数。,float x,y;x=111111.111;y=222222.222;printf(%f,x+y);333333.3281251.系统自动指定数据宽度,整数部分全部 输出,小数部分输出6位。2.单精度数的有效位数为7位;双精度数用%lf输 出时,有

8、效位数为16位,小数位为6位。,m.nf 按自定义格式输出实数。,float x;x=123.456;printf(%f,%10f,%10.2f,%.2f,x,x,x,x);123.456001,123.456001,123.46,123.461.输出数据宽度为m,输出n位小数,n+1位小数 四舍五入;实际小数位n,则左端填0占位。,-m.nf 按自定义格式输出实数。,float x,y;x=123.456;printf(%-9.2f,%f,x,x);123.46,123.4560011.输出数据宽度为m,输出n位小数,n+1位小数 四舍五入;实际小数位n,则左端填0占位。,功能:,格式:,e

9、格式符,以标准指数形式输出单、双精度实数。,e 用系统指定的标准格式输出。,m.ne 用自定义格式输出。,float f=123.456;printf(%e,%10e,%10.2e,%.2e,f,f,f,f);1.234560e+002,1.234560e+002,1.23e+002,1.23e+0021.输出总宽度为m位,数值部分小数为n位。2.当mn+7,则在数字部分前加m-n-7个空 格,否则按实际长度输出。,-m.ne 用自定义格式输出。,float f=123.456;printf(%-10.2e,%e,f,f);1.23e+002,1.234560e+0021.输出总宽度为m位,数

10、值部分小数为n位。2.当mn+7,则在指数部分后加m-n-7个空 格。,功能:,格式:,g格式符,根据数值的大小,自动选择f或e输出实数。,g 选择占宽度较小的一种。,功能:,格式:,普通字符的输出,普通字符即需要原样输出的字符。,printf(a=%d b=%d,a,b);,普通字符,设a,b分别为3和4,则有:a=3 b=4,输出列表举例,“输出表列”是需要输出的一些数据,可以是表达式。可以有多项,也可以没有。,printf(a=%d a+b=%d,a,a+b);,输出表列,printf(“输出提示信息!);,printf函数使用说明,1.有些系统要求格式字符要用小写字母。printf(%

11、d,%f,a,f);printf(%D,%F,a,f);,2.不同的系统实现输出时,输出结果会有小的差别。例如:e格式输出时,指数部分有5位(e+002)和4位(e+02)之分;数值部分有效位数有5位小数和6位小数之分。,3.如输出字符%,则在“格式控制”字符串重用连续的两个%字符。printf(%f%n,1.0/3);输出:0.333333%,4.可以在“格式控制”字符串内包含“转义字符”。例如:n,t,b,r,f等。printf(%d,%fn,a,f);,转义字符,printf函数举例,#include main()int a=29;long b=123456;double x=123.4

12、56;char c=:;printf(1.a=%d,a=%4d,a,a);printf(a=%-4d,a=%04dn,a,a);printf(2.a=%o,a=%04o,a,a);printf(a=%x,a=0 x%xn,a,a);printf(3.b=%ld,b=%8ldn,b,b);printf(4.x=%f,x=%.2f,x,x);printf(x=%10.2f,x=%-10.2fn,x,x);,1.a=29,a=29,a=29,a=00292.a=35,a=0035,a=1d,a=0 x1d3.b=123456,b=1234564.x=123.456001,x=123.46,x=123

13、.46,x=123.46,printf(5.x=%e,x=%.2e,x=%gn,x,x,x);printf(6.%c%8s%cn,c,how are you,c);printf(7.%c%15s%cn,c,how are you,c);printf(8.%c%+10.3s%cn,c,how are you,c);printf(9.%c%-10.3s%cn,c,how are you,c);,5.x=1.234560e+02,x=1.23e+02,x=123.4560016.:how are you:7.:how are you:8.:how:9.:how:,格式输入函数scanf,该函数可按指

14、定的格式输入多个不同类型的数据,并将输入数据存入地址参数所指定的地址单元。,scanf(格式控制,地址表列)格式控制:与printf的格式控制含义相同。输出表列:是由若干个地址组成的表列,可以是地址,或字符串首地址。&:取地址符,单目运算符 格式:&变量名双目运算符,位与运算,功能:,格式:,scanf的格式控制,格式说明符:d格式符 o格式符 x格式符c格式符 s格式符 f格式符 e格式符,scanf附加的格式说明字符:l h 域宽*,scanf附加的格式说明字符,d格式符,用来输入十进制整数。,d%md%*md,全用%d格式符:int a1,a2,a3;scanf(%d%d%d,输入格式:

15、12 123 1234结果:a1=12 a2=123 a3=1234注:数据必须用至少一个空格分开。,全用%md、%*md格式符:int a1,a2,a3;scanf(%2d%*3d%3d,输入格式:1234567890结果:a1=12 a2=678 a3=无注:当指定域宽时,数据不用逗号或空格分开。后面参数是地址列表,不是变量列表。,功能:,格式:,o格式符,用来输入八进制整数。,o%mo%*mo,全用%o格式符:int a1,a2,a3;scanf(%o%o%o,输入格式:012 0123 01234结果:a1=012 a2=0123 a3=01234注:数据必须用至少一个空格分开。,全用

16、%mo、%*mo格式符:int a1,a2,a3;scanf(%4o%*3o%3o,输入格式结果:a1=0123 a2=067 a3=无注:数据不用逗号分开或用空格分开。,功能:,格式:,x格式符,用来输入十六进制整数。,x%mx%*mx,全用%d格式符:int a1,a2,a3;scanf(%x%x%x,输入格式:0 x12 0 x123 0 x1234结果:a1=0 x12 a2=0 x123 a3=0 x1234注:数据必须用至少一个空格分开。,全用%mx、%*mx格式符:int a1,a2,a3;scanf(%4x%*3x%3x,输入格式:0 x120 x30 x4567890结果:a

17、1=0 x12 a2=0 x4 a3=无注:当指定域宽时,数据不用逗号或空格分开。,功能:,格式:,c格式符,用来输入单个字符。注意输入格式!,c%mc%*mc,全用%c格式符:char a1,a2,a3;scanf(%c%c%c,输入格式:abc结果:a1=a a2=b a3=c注:数据不必用逗号或空格分开。,全用%mc、%*mc格式符:char a1,a2,a3;scanf(%3c%*3c%3c,abcdefghijklmnopq结果:a1=a a2=g a3=无注:数据必须不用空格分开。,功能:,格式:,s格式符,用来输入字符串。,以后讲字符型数组再讲s格式符。,功能:,f格式符,用来以

18、小数形式输入十进制实数。,f%mf%*mf,全用%f格式符:float a1,a2,a3;scanf(%f%f%f,12.345 123.456 1234.567结果:a1=12.345 a2=123.456 a3=1234.567注:数据必须只能用至少一个空格分开。,全用%mf、%*mf格式符:int a1,a2,a3;scanf(%5f%*4f%5f,结果:a1=12.34 a2=8.901 a3=无注:数据不用分开,或用空格分开。,功能:,格式:,e格式符,用来以指数形式输入十进制实数。,e%me%*me,与f格式符基本相同,只是输入的数据为指数形式。,功能:,格式:,输入输出操作中常见

19、的错误分析,格式化输入输出的数据类型与所用格式说明符不一致。float f=123.456;scanf(%d,用scanf函数输入数据时,变量前忘记使用地址符,用scanf函数输入数据时,数据的输入形式与格式要求不符。int a1,a2;scanf(%d,%d,input:3 4 3,4,若想在屏幕上输出一行提示信息,然后输入数据,下列语句错误。int a1,a2;scanf(input a1,a2:%d,%d,注:在scanf 函数的格式化控制字符串中一般不要包括普通字符,也不要包括“n”等转义控制符,所有输出信息必须用printf函数输出!,在输入数据时,遇以下情况时该数据认为本输入结束。

20、遇空格,或按“回车”或“跳格”(TAB键)遇宽度结束,如%3d,只取3列。遇非法输入。(6)在需要输入多个数据时,应使用一条scanf语句将多个输入合并在一起输入,尽量避免scanf语句的多次连续使用而出现越界错误。,举例,常见错误scanf(%d,%fn”,程序举例,圆面积和周长计算 基本输入输出实例,#include main()float R,S,L;scanf(%f,程序举例,求半径为R的圆的面积和周长。,#include main()int a,b;scanf(%d%d,问题1:当要求程序输出结果为 a=12,b=34时,用户应该如何输入数据?,12 34,输入数据的格式控制,#in

21、clude main()int a,b;scanf(%d%d,问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为:12,34时,应修改程序中的哪条语句?怎样修改?,scanf(%d,%d,输入数据的格式控制,#include main()int a,b;scanf(%d%d,问题3:语句scanf(%d%d,时,用户应该如何输入数据?,a=12,b=34,输入数据的格式控制,#include main()int a,b;scanf(%d%d,问题4:限定用户输入数据为以下格式为 1234 同时要求程序输出结果为a=12,b=34,scanf(%2d%2d,输入数据的格式控制,#include main()int a,b;scanf(%d%d,问题5:限定用户输入数据为以下格式为1234 同时要求程序输出结果为a=12,b=34,scanf(%d%d,输入数据的格式控制,输入格式也可以为:12 34,#include main()int a,b;scanf(%d%d,问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入,scanf(%d%*c%d,输入数据的格式控制,结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号