3数据的输入输出(p35)._第1页
3数据的输入输出(p35)._第2页
免费预览已结束,剩余20页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章数据白勺输入和输出C语言中I/O操作由函数实现#include 使用较多的函数:吹格式输出printf ()攻格式输入scanf ()A字苻输出函数putchar ()% 字符输入函数getchar()字苻串输出函数put s ()字符半输入函数gets ()itinclude M include stdio.h”字符输出函数格式:putchar ( c )输入参数:c为字符常量、变量或表达式,不能少 功能:把字符C输出到显示器上(一个字符的输岀) 返值:正常,为显示的代码值;putchar(TV);产将大写字母A输出到屏幕*/putchar(48); /*将ASCII码为48的字符输出

2、到屏幕*/putchar(x);广将变量X的值当成ASCII码值,并将此ASCII码 对应的字符输出到屏幕,这里X可以是字符型或整型变量”第3隼效据的输人和输出第3章数据的输入2013 3 312013-3-313. 12010少ST弔S平欽捋的册入科输出#include main() int c;char a;c=65; a=B*;putchar(c); putcharCAn1 2 3); putchar(a);1putchar每次只能输岀1个宇符;2可以为字符变量.字符常量.转义字符3左程序最前必须包含一条预编译指令:# include std io. hu这条预编译指令的作用是告诉编译器

3、,putchar 0函数是在stdio.h这个头文件中进行了说明。如果不进行事先说明的话, 一个函数是不会被编译器所识别的。2013-3-31第3章数据的输入字符输入函数:格式:getchar ()功能:从终端(键盘)读入一字符输入参数:无返值:正常,返回读取的代码值;注意:只接受一个字符,空格、回车符为有效字符需读入 读入操作开始于ENTER的键入。#include main() int c;printf(Enter a character:);putchar(getchar();运行结果:Enter a character: A JA2010少ST弔S平欽捋的册入科输出A#include

4、main() int c;printf(HEnter a character:n);c=getchar();printf(H%c%dnn,c,c);第3章数据的输入和输出3.乙格式输出函数格式:printf(“格式控制串”,输出表) 功能:按指泄格式向显示器输出数据返值:正常,返回输出字节数;输岀表:要输出的数拯(可以没有,多个时以分隔)格式控制串:包含两种信息:格式说明: %格式字符,用于指定输出格式普通字符或转义序列:原样输出运行结果:Enter a character: A JA652013-3-3112013-3-31第3章数据的输入和输出输出数据域宽,数据长度 vm、左*卜空格:否贝

5、!J 按实际输出对实数,扌旨定小数点后位数(四舍五入) 对字符串扌旨定最多输出位数输出数据在域内左对齐(缺省右对齐) 扌旨定在有符号数的正数前显示正号(+) 输出数值旨定左面不使用的空位置自动填 0 在7 赶語!J 牙口十六进伟!J 数前显示前导 0, Ox在 d, O, X, II 眄 扌旨定输出精度为 long 空在 e, f, g 前,扌旨定输出梢度为 double 盟 附力格式.n格式70 格式字符与输出项个数应相同. 按先后顺序-对应f输出转换:格式字苻与输出项类型不一致,自动按扌旨定格式输出233 3 31第3章数据的输入和输出2013-3-31第3章数据的输入和输出厂箱式指示符1

6、.类型转换字符d以带符号的十进制整数形式输出。案例类型转换字符d的使用。#include void main()int num1=123;long num2=123456;printf(num1=%d, num1=%5d, num1 =%-5d, num1=%2dn”, numl, num1,num1, num1);运行结果:num1=123, num1=nD123, num1=123Dn, num1=123第3章数据的输入和输出(A#inelude void main()int num1=123;long nilm2=123456;printf(Fum2=%ld, num2=%8ld, rw

7、m2=%5ldrT, nil m2,num2,num2);运行结果:num2=123456, num2= 123456, num2=123456V2013-3-312013-3-31第3章数据的输入和输出2. %o 格式符。它的作用是将其对应的表达式的值按照八进制整数方式输出。这个格式符不会输出负数形式。它将符号位也做为八进制的一部分输出2013-3-31第3章数据的输入和输出#inelude void main()附加的格式说明符也町以和o起使用,看卜両儿个例子。例子:printf(ux=%5o,077);运行结果:口口口77printf(t,x=%lo,OxFFFFF);运行结果:3777

8、777 printfC,x=%11lo,Oxfffff);运行结果:3777777 printf(ux=%-11loOxfffff);运行结果:3777777口口2 小第3草数据的输入和输出3. %乂格式符。它的作用是将其对应的表达式的值按照十六进制整数方式输出。 printf(,x=%x,Oxffff);运行结果:x=ffffprintf(”x=%8x”,0 xffff);运行结果:x=O Qffffprintf(,x=%lx,0 x7ffff);运行结果:x=7ffff printf(,x=%8lx,0 x7ffff);运行结果:x=D n7ffff printf(,x=%-8lx,0 x

9、7ffff);运行结果:x=7ffff口2013-3-31第3章数据的输入和输出4逢4.%u格式符。它的作用是将其对应的表达式的值按照十进制无符号整数方式输出。 也可以和上面的m, I,三种附加格式符组合使用。 printf(Mx=% uM,-1);运行结果:x=65535 printf(”x=%d,%o,%x,%un”,2, -2, -2, -2);运行结果:x=-2, 177776, fffe, 65534 printf(Hy=%d,%o,%x,%u,(unsigned int)65535, -1,-1,1);运行结果:y=1, 177777, ffff, 65535(-2)=1111 1

10、111 1111 1110 (65535)=1111 1111 1111 11112013-331第3章数据的输入和输出5.%:格式符。它的作用是将其对应的表达式的值按照字符方式进行输出。如果一个整数的数值范围在0到255Z间,也可以用字符方式输出 其对应的ASCII码字符。可以和附加格式符组合 printf(”x=%c”,7V);运行结果:x=A printf(Hx=%cH,66);运行结果:x=B printf(,x=%5cH,66);运行结果:x=nnnQB132013-3-3116位有效位第3章数据的输入和输出6. % s输出一个字符串。案例类型转换字符s的使用。include voi

11、d main()printf(H%s,%5s,%-10sM, Internet, Internet, “Internet”);printff%10.5s,%-10.5s,%4.5snM, “Internet”,“Internet”, “Internet”); 程序运行结果如下:Internet,Internet,Internetnn, Inter,Intern ,Inter第3章数据的输入和输出7 f以小数形式、按系统默认的宽度,输出单精 度和双精度实数。(1)这个格式符将对应表达式的值的整数部分全部输出,并IL输出6位小数。m:显示数据山有的列宽;n:保留小数位数,存在四舍入#inelude

12、 void main()float f=123.456; double d1 ,d2;本案例程序的输出结果中,数据 123. 456001和 3333333333333.333010中的 01和 010都是无意义的, 因为它 们超岀了有效数字的范围。2013-3-31运行结果:123.456001,123.456001,! 23.46,123.46nnnnnn,123.46 d1+d2=3333333333333.3330102013-3-31第3章数据的输入和输出4逢& %0格式符。它的作用是将其对应的表达式的值按照指数方式进 行输出。(1)这种方式输岀的数据,以规范化浮点数形式输出

13、,尾数(7 位含小数点):整数部分只有 1 位且不能为 0,小数位数占 5 位: 指数(4 位):字母 e 占 1 位,指数的符号位占 1 位,指数占 2 位。彳列如:Printf(“x=%e,123.456);运行结果:x= (1.23456e+02)(2)这个格式符也可以和 m, .n,-三种附加格式符一起使用。含义与耕格式 符中这三种附加格式符的含义一样。例如:printf(Mx=%7eM, 123.456);运行结果:x=(1.23456e+02)printf(”x=%8.2e”,123.456);运彳亍结果:x=(D1.2e+02)printf(x=%-8.2e, 123.456);

14、运行结果:x=(1.2e+02 )m:农示以 m 列宽显示;.n:取的是尾数部分除小数点外的数据位数。2013-331第3章数据的输入和输出9. %9格式符。它的作用是将其对应的表达式的值按照实数与指数方式中较短的一 种方式进行输出。并且不输出多余的0。printfC%g,%e,%r,123.321,123.321,123.321);运行结果:123.321,1.23321 e+02, 123.32100017使用说明(1)printfO 可以输出常量、变量和表达式的值。但格式控制中 的格式说明符,必须按从左到右的顺序,与输岀项表中的每个数据 一一对应,否则出错。例如,printf(ttstr

15、=%s, f=%d, i=%fnn, Internef, 1.0 / 2.0, 3 + 5, “CHINA”);是错误的。(2) 格式字符 x、e、g 可以用小写字母,也可以用大写字母。使用大写字母时,输岀数据中包含的字母也大写。除了 X、e. g 格式 字符外,其它格式字符必须用小写字母。例如,f 不能写成巳(3)格式字符紧跟在“”后面就作为格式字符,否则将作为普 通字符使用(原样输出)。例如,printf(nc=%c, f=%fnu, c, f);M中的第一个 c 和 f,都是普通 字符。2013-3-31第3章数据的输入19例 float f= 123.456; charch=a; pr

16、intf(“o心 f,。心printfC%3cn,ch);运行结果:J2013-3-31static char a=Hcllo,woi4cl!printf(4%sn% 15sn% 10.5sn%2.5sn%.3sna,a,a,a,a);HelloHel4第3章数据的输入和输出floatf= 123.456;static char c|=4tHello,world! ; printfC% 10.2f,% 10.1fn5,f,f); printfV4% 10.5s,%-10.3snc,c);运行结果:123.46,123.5Hello,Hel例 int a=1234;float f= 123.45

17、6;printfC%010.2fn,f); /0000123.46 printf(“0+8diT,a); /+0001234 printfC%0+10.2fn,f);/+000123.46例 int a=123; printfC%o, %#o, %X, %#Xn*,a,a,a,a);173,0173, 7B, 0X7B例 long a=65536; printK%d, %81dna, a);/0,第3章数据的输入00 0000 00 00 00 00 01 0000 00 00 0000oobF655362013-3-31第3章数据的输入和输出,03- 3格式输入函数格式:scanf (-格式

18、控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束返值:正常,返回输入数据个数(1)格式字符串。格式字符串可以包含3种类型的字符:格式指示符.空白 字符(空格、Tab键和回车键)和非空白字符(又称普通字符)。辭目似,华.有效数扌丿j入项首土量首地址的表示方法: 其中是地址运算符。2013-3-31附加格式说明符(修饰符)修饰符功芳邑h用于 d, o, x 前,扌旨定输入为 short 型推数1用于 d, o, x 前,指定输入为 long 型建数用于 e, f 前,扌旨定输入为 double 型实数m扌旨定输入数据宽度,遇空格或不可转换字苻贝!J 结

19、束*抑制符,扌旨定输入项读入后不赋纟台变量例scanf(“(r,&a);输入:10则a=10例scanfC%x*&a);输入:11 则a=17言变呈的&变量第3章数据的输入2013-3-31第3章数据的输入和输出2S:硕T scanf(u%3c%2cM,&c1,&c2)jld):输入abcde J贝ij ancl,dnc22013-3-31第3章数据的输入和输出,0使用格式控制参数时需要注意的问题1、必须按格式控制参数规定的格式输入;2、在格式控制中,格式说明的类型应一一对应匹配,否则 可能得不到正确的数据,例如在输入long整数和输入double型整数

20、时,在后必须加 X3、格式说明的个数应该与输入项的个数相同。4、不可以对实数指定小数位的宽度,如scanf(“7 2化&a)是 错误的;第3章数据的输入和输出scanf 函数如何分隔数据项当用户在终端键入一串字符吋,系统如何知道哪几个字符算作 一个数据项?(1)遇到空格,或者回车键,或者 Tab 键。(2)遇到输入域宽度结束。例如“3dS 只取 3 列。(3)遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号 (数值符乃仅由数字字符 09、小数点和正负兮构成)。如scanf(u%c%c%cn,&c1,&c2,&c3);若输入abc则a=c1, b=C25

21、C=C3如scanf(%d%c%f&a,&b.&c);2013-3-312013-3-31第3章数据的输入和输出2S:若输入1234a 123 .26贝!J 1234a,=b, 123 =c2013-3-31第3章数据的输入和输出,0常见的输入分隔符的指定: 一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符r /ur /a /_/ iia例scanfCd&a,&例scanf(“a=%d,b=%d,c=%d:&a,&b&c);输入a=12,b=24,c=36 J第3章数据的输入和输出2. scanf是一

22、个函数,它有返回值,这个返回值就是 成功匹配的项数。void main()int a = 1,b = 2, c = 3;printf(u%dn,J, scanf(“3d2d-%4d, &a, &b, &c);printf(ua=%d, b=%d, c=%dnM, a, b, c);若输入:123-45-6789则输出:J若输入:12-345-6789则输出:J3a=123, b=45, c=67892a=12, b=34, c=32013-3-312013-3-31第3章数据的输入和输出,03. 4顺序结构程序设计在顺序结构程序中,程序从上到下一条语句一条语句地执 行。

23、一般包括以下几个部分:1.程序开头的编译预处理命令。在程序中要使用标准函数(又称库函数),除 printfO 和 scanf()外, 其它的都必须使用编译预处理命令, 将相应 的头文件包含进来。 。2.顺序结构程序的函数体中,是完成具体功能的各个语 句和运算,主要包括:(1)(2)(3)2013-3-31变量类型的说明。提供数据部分(输入语句、赋值语句)。 运算部分。输出部分。丿第3章数据的输入和输出程序举例案例3.1匸知圆半径radius=1.5,求圆周长和圆面积。/*ch3_l.c*/#include 29#include void main()float radius,length,ar

24、ea,pi=3.1415926;radius=1.5;length=2*pi*radius;area=pi*radius*radius;printf(uradius=%Anwlradius);printf(ulength=%7.2f,area=%7.2fnnllength,area); 厂求圆周IC/*求圆面莎r/广输出闘周长.面积&radius=1.500000length= 9.42,area=7.072013-3-31第3章数据的输入和输出2013-3-31第3章数据的输入和输出,0/*ch3_2.c*/#include #include main() float a,b,c,s,area;scanf(n%f,%f,%r,&a,&b,&c);s=l .0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(Ha=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fna,b,c,s);printf(Harea=%7.2fnlarea);输入:3,4,6 J输 Uh a= 3.00, b= 4.00, c= 6.00 s= 6.50area=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论