




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 输入与输出 本章主要介绍C语言中的输入 与输出函数的使用。 所谓数据输入输出是以计算机为主体而言的。所谓数据输入输出是以计算机为主体而言的。 C语言本身不提供输入输出语句,输入和输出操作是由函语言本身不提供输入输出语句,输入和输出操作是由函 数实现的。数实现的。C语言函数库中有一批语言函数库中有一批“标准输入输出函数标准输入输出函数”, 它是以标准的输入输出设备为输入输出对象的。其中有:它是以标准的输入输出设备为输入输出对象的。其中有: putchar(输出字符),(输出字符),getchar(输入字符),(输入字符), printf(格式输出),(格式输出),scanf(格式输入),
2、(格式输入),puts(输(输 出字符串),出字符串),gets(输入字符串)。(输入字符串)。 在使用在使用C语言的库函数时,要用预编译命令语言的库函数时,要用预编译命令“#include” 将有关的将有关的“头文件头文件”包括到用户源文件中。头文件中包含包括到用户源文件中。头文件中包含 了与函数有关的信息。了与函数有关的信息。 例如使用标准输入输出函数时,要用到例如使用标准输入输出函数时,要用到“ stdio.h”文件,文件, 文件开头应有一个预编译命令:文件开头应有一个预编译命令: #include 或或 #include “stdio.h” 3.1、单字符输入、输出函数、单字符输入、输
3、出函数 1、单字符输出函数(putchar) 1)putchar()函数的格式: putchar(ch); 其中ch可以是一个字符变量或常量,也可以是一个转义 字符。 2)putchar()函数的作用:向终端输出一个字符。 (1)putchar()函数只能用于单个字符的输出,且一次只能输出 一个字符。 (2)在程序中使用putchar()函数,务必牢记:在程序(或文件) 的开头加上编译预处理命令(也称包含命令),即: #include stdio.h (3)putchar()函数有参数,无返回值。参数就是它要输出的那个 字符,可以是字符变量或字符常量。 例 putchar() 函数的格式和使用
4、方法。 #include main() char ch1=N, ch2=E, ch3=W; putchar(ch1); putchar(ch2); putchar(ch3); putchar(n); putchar(ch1); putchar(n); putchar(E); putchar(n); putchar(ch3); putchar(n); 程序运行结果如下:程序运行结果如下: NEW N E W 2、单字符输入函数getchar() 1)getchar()函数的格式:getchar(); 2)getchar()函数的作用:从系统隐含的输入设备 (如键盘)输入一个字符。 getchar
5、()函数只能用于单个字符的输入,一次 输入一个字符。 程序中要使用getchar()函数,必须在程序(或 文件)的开头加上编译预处理命令: #include “stdio.h” getchar()函数没有参数,但有返回值,返回的就是 输入的那个字符。 getchar()函数同样将空格和回车键等字符都会作为 有效字符输入。 在TC屏幕下运行含本函数程序时,将退出TC 屏幕 进入用户屏幕等待用户输入。输入完毕再返回TC屏 幕。 程序最后两行可用下面两行的任意一行代替: main() char c; c=getchar(); putchar(c); putchar(getchar(); printf
6、(%c,getchar(); 例例 说明说明getchar()函数的格式和作用。函数的格式和作用。 #include stdio.h main() char ch; ch=getchar(); putchar(ch);putchar(n); putchar(getchar(); putchar(n); 程序运行情况如下:程序运行情况如下: ab a b 3.2、格式输出函数(、格式输出函数(printf) printf()函数的作用:函数的作用: 向计算机系统默认的输出设备(一般指终端或显示器)向计算机系统默认的输出设备(一般指终端或显示器) 输出一个或多个任意类型的数据。输出一个或多个任意类
7、型的数据。 printf()函数的一般格式如下:函数的一般格式如下: printf(“格式字符串格式字符串” ,输出表列,输出表列); “格式控制字符串格式控制字符串”是用双引号括起来的字符串,是用双引号括起来的字符串, 也称也称“转换控制字符串转换控制字符串”,它可以是两种信息:格式说明,它可以是两种信息:格式说明 或普通字符。或普通字符。 格式说明。是由格式说明。是由“%”字符开始和格式字符组成,如字符开始和格式字符组成,如 %d、%f等。它的作用是将输出的数据转换为指定的格式等。它的作用是将输出的数据转换为指定的格式 输出。输出。 普通字符。即需要原样输出的字符,包括转义字符。例如普通字
8、符。即需要原样输出的字符,包括转义字符。例如 printf函数中双引号内的逗号、空格和换行符等。函数中双引号内的逗号、空格和换行符等。 “printf(”abc=%fn“, abc);”语句中的语句中的“abc=”就是就是 普通字符。普通字符。 2输出表列输出表列 输出表列是可选的。如果要输出的数据不止一个,相邻两个数输出表列是可选的。如果要输出的数据不止一个,相邻两个数 据之间用逗号分开。据之间用逗号分开。 下面的下面的printf()函数都是合法的:函数都是合法的: (1)printf(I am a student.n); (2)printf(%d,3+2); (3)printf(a=%d
9、 b=%5dn, a, a+3); 注意:注意: “格式字符串格式字符串”中的格式指示符,必须与中的格式指示符,必须与“输出项表输出项表”中、中、 输出项的数据类型一致,否则会引起输出错误。输出项的数据类型一致,否则会引起输出错误。 在在Turbo CTurbo C中,中,printfprintf函数输出表列中的求值顺序是从右到左函数输出表列中的求值顺序是从右到左 进行的。进行的。 2.格式控制字符串 在Turbo C中printf函数格式控制字符串以%开 始,以一个格式字符结束,中间可以插入附加的 字符。一般形式为: 说明:方括号中的项为可选项,可以省略说明:方括号中的项为可选项,可以省略。
10、 %m.nh/l格式字符 开始 符 标志字符 宽度指示符 精度指示符长度修正 符 格式转换字 符 格式字符格式字符说明说明 d,i以带符号的十进制形式输出整数(正数不输出符号)以带符号的十进制形式输出整数(正数不输出符号) o以八进制无符号形式输出整数(不输出前导符以八进制无符号形式输出整数(不输出前导符0) x,X 以十六进制无符号形式输出整数(不输出前导符以十六进制无符号形式输出整数(不输出前导符0 x),用),用x则输出十则输出十 六进制数的六进制数的af时以小写形式输出;用时以小写形式输出;用X时,则以大写字母输出时,则以大写字母输出AF u以无符号十进制形式输出整数以无符号十进制形式
11、输出整数 c以字符形式输出,只输出一个字符以字符形式输出,只输出一个字符 s输出字符串输出字符串 f以小数形式输出单、双精度数,隐含输出以小数形式输出单、双精度数,隐含输出6位小数。位小数。 e,E以指数以指数“e”或或“E”形式输出实数。(如形式输出实数。(如1.2e+02或或1.2E+02) g,G 选用选用%f或或%e格式中输出宽度较短的一种格式,不输出无意义的格式中输出宽度较短的一种格式,不输出无意义的0。用。用 G时,若以指数形式输出,则指数以大写表示时,若以指数形式输出,则指数以大写表示 标志字符标志字符 标志字符包括标志字符包括-、+、#、0等等4种,具体含义参见表种,具体含义参
12、见表2-6所示。所示。 表2-6 printf标志字符 字符意义 -输出结果左对齐,右边填空格;缺省则输出结 果右对齐,左边填空格或零 + 输出值为正时冠以“+”号,为负时冠以“-”号, 缺省则为正时冠以空格,为负时冠以“-”号 #八进制输出时加前缀0;十六进制输出时加前缀 0 x,对c、s、d、u类无影响,对e、g、f类当结 果有小数时才给出小数点 0输出在数据前的多余空格处加前导0 printf(%dn,888);/* 888(按实际需要宽度输出)*/ printf(%6dn,888);/* 888(输出右对齐,左边填空格)*/ printf(%fn,888.88);/* 888.8800
13、00(按实际需要宽度输出)*/ printf(%12fn,888.88);/* 888.880000(输出右对齐,左边填空格) */ printf(%gn,888.88);/* 888.88(%g格式比采用%f格式输出宽度小)*/ printf(%8gn,888.88);/* 888.88(输出右对齐,左边填空格)*/ printf(%.5dn,888);/* 00888(数字前补0)*/ printf(%.0dn,888);/* 888 */ printf(%8.3fn,888.88);/* 888.880 */ printf(%8.1fn,888.88);/* 888.9 */ print
14、f(%8.0fn,888.88);/* 889 */ printf(%.5sn,abcdefg);/* abcde(截去超过的部分)*/ printf(%5sn,abcdefg);/* abcdefg(宽度不够,按实际宽度输出)*/ 长度修正符 常用的长度修正符为h和l两种,h表示输出项按短整型 输出,l表示输出项按长整型输出。 3.3、scanf()函数函数 scanf()函数是用来从外部输入设备向计算机主机输入数据的。函数是用来从外部输入设备向计算机主机输入数据的。 1scanf()函数的功能:从键盘上接收格式化输入。函数的功能:从键盘上接收格式化输入。 2. scanf()函数的一般格式
15、函数的一般格式 scanf(“格式控制字符串格式控制字符串”, 地址表列地址表列); (1)格式控制字符串。)格式控制字符串。 格式控制字符串可以包含格式控制字符串可以包含3种类型的字符:格式指示符、种类型的字符:格式指示符、 空白字符(空格、空白字符(空格、Tab键和回车键)和非空白字符(又称普通键和回车键)和非空白字符(又称普通 字符)。字符)。 格式指示符与格式指示符与printf()函数的相似,空白字符作为相邻函数的相似,空白字符作为相邻2 个输入数据的缺省分隔符,非空白字符在输入有效数据时,必个输入数据的缺省分隔符,非空白字符在输入有效数据时,必 须原样一起输入。须原样一起输入。 (
16、2)地址表列)地址表列由若干个输入项首地址组成,相邻由若干个输入项首地址组成,相邻 2个输入项首地址之间,用逗号分开。个输入项首地址之间,用逗号分开。 输入项首地址表中的地址,可以是变量的首地址,也输入项首地址表中的地址,可以是变量的首地址,也 可以是字符数组名或指针变量。可以是字符数组名或指针变量。 变量首地址的表示方法:变量首地址的表示方法: 中的中的“ scanf(%3c%3c, printf(ch1=%c,ch2=%cn,ch1,ch2); 假设输入假设输入“abcdefg”,则系统将读取的,则系统将读取的“abc”中中 的的“a”赋给变量赋给变量ch1;将读取的;将读取的“def”中
17、的中的“d”赋给变赋给变 量量ch2,所以,所以printf()函数的输出结果为:函数的输出结果为:ch1=a,ch2=d。 3)抑制字符)抑制字符* 表示本输入项对应的数据读入后,不赋给相应的变量(该表示本输入项对应的数据读入后,不赋给相应的变量(该 变量由下一个格式指示符输入)。变量由下一个格式指示符输入)。 例如:例如: scanf(%2d%*2d%3d, printf(num1=%d,num2=%dn,num1,num2); 假设输入假设输入“123456789”,则系统将读取,则系统将读取“12”并赋值并赋值 给给num1;读取;读取“34”、但舍弃掉(、但舍弃掉(“*”的作用);读
18、取的作用);读取 “567”并赋值给并赋值给num2。所以,。所以,printf()函数的输出结果为:函数的输出结果为: num1=12,num2=567。 4、注意事项注意事项 scanf函数中的函数中的“格式控制字符串格式控制字符串”后面应当是变量地址,后面应当是变量地址, 而不应是变量名。而不应是变量名。 例如,如果例如,如果a、b为整型变量,则为整型变量,则 scanf(%d,%d,a,b); 是错误的,应将是错误的,应将“a,b”改为改为“ 如输入:如输入:abc 则字符则字符a赋予变量赋予变量c1,字符,字符赋予变量赋予变量c2,字符,字符 b赋予变量赋予变量c3,因为,因为%c只
19、要求读入一个字符,后面不需要用只要求读入一个字符,后面不需要用 空格作为两个字符的间隔,因此空格作为两个字符的间隔,因此作为下一个字符赋予变量作为下一个字符赋予变量 c2。 输入格式中,除格式说明符之外的普通字符应原样输入。输入格式中,除格式说明符之外的普通字符应原样输入。 例如:例如: scanf(x=%d,y=%d,z=%d, 应使用以下形式输入:应使用以下形式输入: x=12,y=34,z=56 输入实型数据时,不能规定精度,即没有输入实型数据时,不能规定精度,即没有“%m.n”的的 输入格式。输入格式。 例如:例如: scanf(%7.2f, 这种输入格式是不合法的,不能企图用这样的这
20、种输入格式是不合法的,不能企图用这样的scanf 函数并输入以下数据而使函数并输入以下数据而使f的值为的值为12345.67。 1234567 在输入数据时,如果遇到以下情况,则认为是该数据 输入结束: 遇到空格符、换行符或制表符(Tab)。例如: scanf(%d%d%d%d, 如果输入: 1234 则i、j、k、m变量的值分别为1、2、3、4。 遇到给定的宽度结束。例如: scanf(%2d, 如果输入: 1234567 则i变量的值为12。 遇到非法字符输入,例如: scanf(%d%c%f, 如果输入: 123x45y.6789 则 i的值为123,c1的值为x,f1的值为45.0。
21、若输入的数据与输出的类型不一致,虽然编译能够若输入的数据与输出的类型不一致,虽然编译能够 通过,但结果不正确。通过,但结果不正确。 【例例2-9】输入数据与输出数据类型不一致的情况。输入数据与输出数据类型不一致的情况。 main() int a; printf(input a numbern); scanf(%d, printf(%ld,a); 提高人机交互性建议:为改善人机交互性,同时简化输入 操作,在设计输入操作时,一般先用printf()函数输出一个提 示信息,再用scanf()函数进行数据输入。 例如,将 scanf(num1=%d,num2=%dn, 改为: printf(num1=
22、); scanf(%d, printf(num2=); scanf(%d, scanf,printf,getchar和putchar函数的特点 scanf和getchar函数是输入函数,接收来自键盘的输入 数据。 scanf是格式输入函数,可按指定的格式输入任意类型 数据;getchar函数是字符输入函数,只能接收单个字 符。 printf和putchar函数是输出函数,向显示器屏幕输出数 据。 printf是格式输出函数,可按指定格式显示任意类型的数 据;putchar是字符显示函数,只能显示单个字符 只使用scanf和printf函数可以在程序中不包含头文件 #include 使用getc
23、har和putchar函数在程序中一定要包含头文件 #include 3.4 程序举例 【例 3.4】设圆半径r=1.5,圆柱高h=3,输出圆 周长、圆面积、圆球表面积、圆球体积、圆柱 体积,要求小数点后面保留两位小数。 解题思路: 利用相关的计算公式来完成问题的求解; 其中:圆周长 l=2*PI*r 圆面积 s=PI*r*r 圆球表面积 sq=4*PI*r*r 圆球体积 vq=4.0/3.0*PI*r*r*r 圆柱体积 vz= PI*r*r*h PI 为符号常量,代表3.1415926; 源程序: #include #define PI 3.1415926 main( ) float r,h
24、,l,s,sq,vq,vz; /*变量定义*/ printf(please input r,h:n); /*输入提示信息*/ scanf (%f,%f, /*从键盘输入圆半径r、圆柱高h 的值*/ l=2*PI*r; /*计算圆周长*/ s=PI*r*r; /*计算圆面积*/ sq=4*PI*r*r; /*计算圆球表面积*/ vq=4.0/3.0*PI*r*r*r; /*计算圆球体积*/ vz= PI*r*r*h; /*计算圆柱体积*/ printf(%6.2fn,l); /*输出各计算结果,小数点后面保留两位小 数*/ printf(%6.2fn,s); printf(%6.2fn,sq); printf(%6.2fn,vq); printf(%6.2fn,vz); 【例 3.5】编写一个程序,从键盘输入一个小 写字母,将其转换为大写字母后输出。 解题思路: 在 C 语言中,字母以其ASCII 码值形式存放在 内存中,如65 是大写字母A的ASCII码值。仔 细分析ASCII 码表,发现同一字母大小写的 ASCII 码值相差32,而且小写字母的ASCII 码 值大。所以将输入的小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 短视频广告设计策略试题及答案
- 了解纺织品耐磨性检测试题及答案
- 女性类型测试题及答案
- 生化试题库及答案 受体
- 月球动物测试题及答案
- 广告设计师设计流程优化试题及答案
- 1月20雅思试题及答案
- 深入剖析的广告设计师考试技巧试题及答案
- 2024年纺织行业试题及答案解析
- 广告设计与用户互动体验试题及答案
- 被执行人财产线索提供书(模板)
- 新技术、新工艺、对提高工程质量、缩短工期、降低造价的可行性
- 金属矿床地下开采复习题及答案
- Cpk 计算标准模板
- 【小升初】2023小学六年级人教版道德与法治升学毕业试卷及答案(时政+上下册考点)04
- 乳化液废水处理方案
- 军事航天技术
- 慢阻肺的管理课件
- 新媒体实验影像课件
- 游戏王统一规则
- 毕业论文-原油电脱水方法与机理的研究
评论
0/150
提交评论