版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.6 格式化输出函数格式化输出函数printf()printf()函数是最常用的输出函数,它的作用是向计算机系统默函数是最常用的输出函数,它的作用是向计算机系统默认的输出设备认的输出设备(一般指显示器一般指显示器)输出一个或多个任意指定类型的输出一个或多个任意指定类型的数据数据2.6.1 printf( )函数的一般格式函数的一般格式 调用调用printf()函数的一般格式为函数的一般格式为 printf(格式字符串格式字符串, 输出项表输出项表); 例如:例如: printf(radius=%fnlength=%7.2f,area=%7.2fn, r, l, a); 格式字符串也称格式控制
2、字符串或格式转换字符串,其格式字符串也称格式控制字符串或格式转换字符串,其中可以包含下列三种字符:中可以包含下列三种字符: (1) 格式指示符:例如格式指示符:例如“%f”、“%7.2f”等,这些字符用来控制等,这些字符用来控制数据的输出格式。数据的输出格式。 (2) 转义字符:这些字符通常用来控制光标的位置。转义字符:这些字符通常用来控制光标的位置。 (3) 普通字符:除格式指示符和转义字符之外的其他字符,这些普通字符:除格式指示符和转义字符之外的其他字符,这些字符输出时原样输出,例如上面例子中的字符输出时原样输出,例如上面例子中的“radius=”等。等。2.6.2 格式指示符格式指示符格
3、式指示符的一般形式为格式指示符的一般形式为%修饰符修饰符格式字符格式字符1格式字符格式字符printf函数中常用的格式字符如表函数中常用的格式字符如表2-1所示。所示。格式字符说 明举 例输出结果d带符号十进制整数格式printf(%d, 10 );10printf(%d, A );65u无符号十进制整数格式printf(%u, 10 );10printf(%u, A );65x或X无符号十六进制整数格式printf(%x, 10 );aprintf(%x, A );41printf(%X,10);Ao无符号八进制整数格式printf(%o, 10 );12printf(%o, A );101
4、c字符格式printf(%c, 10 );换行printf(%c, A );Af小数格式printf(%f, 1.2345);1.234500e或E指数格式printf(%e, 1.2345);1.23450e+00printf(%E, 1.2345);1.23450E+00g或G小数形式或指数形式,使输出宽度最小,不输出无意义的0printf(%g, 1.2345);1.2345printf(%g, 0.000001);1e-06printf(%G, 0.000001);1E-06%输出%printf(%);%s输出字符串printf(%s, abcde);abcde长度修饰符长度修饰符 长
5、度修饰符长度修饰符“l”加在加在%号和格式字符之间。输出长整型号和格式字符之间。输出长整型数据的时候,一定要加长度修饰符,否则,得不到正确的显数据的时候,一定要加长度修饰符,否则,得不到正确的显示结果。例如:示结果。例如: long x=7654321; printf(x=%ldn, x); 输出结果为:输出结果为:x=7654321。3宽度修饰和精度修饰宽度修饰和精度修饰 可以在可以在%号和格式字符之间加入形如号和格式字符之间加入形如“m.n”(m、n均为整均为整数数)的修饰。其中,的修饰。其中,m为宽度修饰,为宽度修饰,n为精度修饰。宽度修饰用来为精度修饰。宽度修饰用来指定数据的输出宽度。
6、精度修饰对不同的格式字符,作用不同:指定数据的输出宽度。精度修饰对不同的格式字符,作用不同:对于格式字符对于格式字符f,用来指定输出小数位的位数;对于格式字符,用来指定输出小数位的位数;对于格式字符e,用来指定输出有效数字的位数;对于格式字符用来指定输出有效数字的位数;对于格式字符d,用来指定必须,用来指定必须输出的数字的个数。相关的例子如表输出的数字的个数。相关的例子如表2-2所示。所示。输出语句输出结果(表示空格)printf(%5d, 42);42printf(%5.3d, 42);042printf(%.3d, 42);042printf(%7.2f, 1.23456);1.23pri
7、ntf(%.2f, 1.23456);1.23printf(%10.2e, 1.23456);1.2e+00printf(%.2e, 1.23456);1.2e+00左对齐修饰左对齐修饰 在指定了宽度修饰时,如果指定宽度小于数据需要的在指定了宽度修饰时,如果指定宽度小于数据需要的实际宽度,则数据左边补空格,补够指定的宽度,这种对齐实际宽度,则数据左边补空格,补够指定的宽度,这种对齐方式称为方式称为“右对齐右对齐”。当然,也可以在数据的右边补空格来。当然,也可以在数据的右边补空格来补够指定的宽度,这种对齐方式称为补够指定的宽度,这种对齐方式称为“左对齐左对齐”。指定左对。指定左对齐的时候,使用左
8、对齐修饰符齐的时候,使用左对齐修饰符“-”,例如语句:,例如语句: printf(%-7.2fn, 1.23456); 输出结果为输出结果为 1.23(右边补三个空格右边补三个空格)2.6.3 使用说明使用说明 (1) printf()函数可以输出常量、变量和表达式的值。函数可以输出常量、变量和表达式的值。但格式控制字符串中的格式指示符必须按从左到右的顺序,但格式控制字符串中的格式指示符必须按从左到右的顺序,与输出项表中的每个数据一一对应,否则出错。与输出项表中的每个数据一一对应,否则出错。 (2) 格式字符格式字符x、e、g可以用小写字母,也可以用大可以用小写字母,也可以用大写字母。使用大写
9、字母时,输出数据中包含的字母也大写。写字母。使用大写字母时,输出数据中包含的字母也大写。除了除了x、e、g格式字符外,其他格式字符必须用小写字母,格式字符外,其他格式字符必须用小写字母,例如,例如,“%f”不能写成不能写成“%F”。 (3) 格式字符紧跟在格式字符紧跟在“%”后面就作为格式字符,否后面就作为格式字符,否则将作为普通字符使用则将作为普通字符使用(原样输出原样输出),例如,例如,“printf(”c=%c, f=%fn“, c, f);”中的第一个中的第一个c和和f都是普通字符。都是普通字符。 看例题看例题2.2、2.42.7 格式化输入函数格式化输入函数scanf()scanf(
10、)函数的功能是从计算机默认的输入设备函数的功能是从计算机默认的输入设备(一般指键盘一般指键盘)向向计算机主机输入数据。计算机主机输入数据。 2.7.1 scanf()函数的一般格式函数的一般格式 调用调用scanf( )函数的一般格式为函数的一般格式为 scanf(格式字符串格式字符串, 输入项地址表输入项地址表); 例如:例如: scanf(%d %f, &i, &f); (1) 格式字符串:格式字符串可以包含三种类型的字符:格式格式字符串:格式字符串可以包含三种类型的字符:格式指示符、空白字符指示符、空白字符(空格、跳格键、回车键空格、跳格键、回车键)和非空白字符和非空白字
11、符(又称普又称普通字符通字符)。格式指示符用来指定数据的输入格式;空白字符作为。格式指示符用来指定数据的输入格式;空白字符作为相邻两个输入数据的缺省分隔符;非空白字符在输入有效数据时,相邻两个输入数据的缺省分隔符;非空白字符在输入有效数据时,必须原样一起输入。必须原样一起输入。 (2) 输入项地址表:由若干个输入项地址组成,相邻两个输输入项地址表:由若干个输入项地址组成,相邻两个输入项地址之间用逗号分开。输入项地址表中的地址,可以是变量入项地址之间用逗号分开。输入项地址表中的地址,可以是变量的地址,也可以是字符数组名或指针变量的地址,也可以是字符数组名或指针变量(后续内容介绍后续内容介绍)。变
12、量。变量地址的表示方法为地址的表示方法为“&变量名变量名”,其中,其中,“&”是地址运算符。是地址运算符。2.7.2 格式指示符格式指示符格式指示符的一般形式为格式指示符的一般形式为%【修饰符】格式字符【修饰符】格式字符scanf函数中使用的格式字符如表函数中使用的格式字符如表2-4所示。所示。格式字符说 明d输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数c输入一个字符f 和e输入小数形式或指数形式的实型数据s输入字符串表2-4 常用格式字符1宽度修饰宽度修饰 宽度修饰用来指定输入数据所占列数,例如:宽度修饰用来指定输入数据所占列数,例如: scanf(
13、%3d%3d,&m,&n); 假设输入假设输入“1234567”,则系统将读取的,则系统将读取的“123” 赋给变赋给变量量m;将读取的;将读取的“456” 赋给变量赋给变量n。2抑制修饰符抑制修饰符 抑制修饰符抑制修饰符“*”表示对应的数据读入后,不赋给相应表示对应的数据读入后,不赋给相应的变量,该变量由下一个格式指示符输入。例如:的变量,该变量由下一个格式指示符输入。例如: scanf(%2d%*2d%3d,&num1,&num2); 假设输入假设输入“123456789”,则系统将读取,则系统将读取“12”并赋值给并赋值给num1;读取;读取“34”,但舍
14、弃掉,但舍弃掉(“*”的作用的作用);读取;读取“567”并赋并赋值给值给num23长度修饰符长度修饰符 在输入长整型数据和双精度实型数据时,必须使用在输入长整型数据和双精度实型数据时,必须使用长度修饰符长度修饰符“l”,否则,不能得到正确的输入值。例如:,否则,不能得到正确的输入值。例如: long x; double y; scanf(%ld %lf, &x, &y);2.7.3 使用说明使用说明 调用调用scanf()函数输入数据时,要注意以下几点:函数输入数据时,要注意以下几点: (1) 如果相邻两个格式指示符之间,不指定数据分隔如果相邻两个格式指示符之间,不指定数据分
15、隔符符(如逗号、冒号等如逗号、冒号等),则相应的两个输入数据之间至少用一,则相应的两个输入数据之间至少用一个空格分开,或者用个空格分开,或者用Tab键分开,或者输入一个数据后,按键分开,或者输入一个数据后,按回车,然后再输入下一个数据。回车,然后再输入下一个数据。例如:例如: scanf(%d%d,&num1,&num2); 假设给假设给num1输入输入10,给,给num2输入输入20,则正确的输,则正确的输入操作为入操作为1020 或者:或者:10 20 (2) 格式字符串中出现的普通字符格式字符串中出现的普通字符(包括转义字符形式的字包括转义字符形式的字符符),务必原样输入
16、。例如:,务必原样输入。例如: scanf(num1=%d,num2=%d,&num1,&num2); 假设给假设给num1输入输入10,给,给num2输入输入20,正确的输入,正确的输入操作为操作为 num1=10,num2=20 另外,另外,scanf()函数中,对于格式字符串内的转义字函数中,对于格式字符串内的转义字符符(如:如:n),系统并不把它当转义字符来解释,从而产生一,系统并不把它当转义字符来解释,从而产生一个控制操作,而是将其视为普通字符,所以也要原样输入。个控制操作,而是将其视为普通字符,所以也要原样输入。例如:例如: scanf(num1=%d,num2=%
17、dn,&num1,&num2); 假设给假设给num1输入输入10,给,给num2输入输入20,正确的输入操作为,正确的输入操作为 num1=10,num2=20n 为改善人机交互性,同时简化输入操作,在设计输为改善人机交互性,同时简化输入操作,在设计输入操作时,一般先用入操作时,一般先用printf()函数输出一个提示信息,再函数输出一个提示信息,再用用scanf()函数进行数据输入。例如:函数进行数据输入。例如: printf(num1=); scanf(%d,&num1); printf(num2=); scanf(%d,&num2);(3) 输入数据时,
18、遇到以下情况时系统认为该数据输入结束。输入数据时,遇到以下情况时系统认为该数据输入结束。 遇到空格,或者回车键,或者遇到空格,或者回车键,或者Tab键。键。 遇到输入域宽度结束。例如遇到输入域宽度结束。例如%3d,只取三列。,只取三列。 遇到非法输入。例如,在输入数值数据时,遇到遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号字母等非数值符号(数值符号仅由数字字符数值符号仅由数字字符09、小数点和、小数点和正负号构成正负号构成)。(4) 使用格式说明符使用格式说明符%c输入单个字符时,空格和回车等输入单个字符时,空格和回车等均作为有效字符被输入。例如:均作为有效字符被输入。例如: s
19、canf(%c%c%c,&ch1,&ch2,&ch3); printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3); 假设输入:假设输入:AB ,则系统将字母,则系统将字母“A”赋值给赋值给ch1,空格赋值给空格赋值给ch2,“B”赋值给赋值给ch3。2.5 单个字符的输入单个字符的输入/输出函数输出函数除了使用除了使用printf()函数和函数和scanf()函数可以输出函数可以输出/输入字符数据外,输入字符数据外,C语言还提供了语言还提供了putchar()和和getchar()函数,专门用来输出函数,专门用来输出/输输入单个字符。入单个字
20、符。 每调用每调用putchar()函数一次,就向显示器输出一个字符,函数一次,就向显示器输出一个字符,它的调用形式如下:它的调用形式如下: putchar(ch); 其中,其中,ch是字符变量或是字符常量,例如:是字符变量或是字符常量,例如:putchar(Y); 将在显示器上输出字符将在显示器上输出字符Y。每调用每调用getchar()函数一次,就从键盘接收一个字符,它的函数一次,就从键盘接收一个字符,它的调用形式如下:调用形式如下: ch=getchar( ); getchar()函数是一个无参函数,但调用函数是一个无参函数,但调用getchar()函函数时,后面的括号不能省略。数时,后
21、面的括号不能省略。getchar()函数从键盘接收一函数从键盘接收一个字符作为它的返回值。个字符作为它的返回值。 在输入时,空格、回车等都将作为字符读入,而且,在输入时,空格、回车等都将作为字符读入,而且,只有在用户输入回车键时,读入才开始执行。只有在用户输入回车键时,读入才开始执行。【例【例2.1】 以下程序先从键盘接收一个字符,然后显示在显以下程序先从键盘接收一个字符,然后显示在显示器上。示器上。 /*程序功能:单个字符的输入与输出程序功能:单个字符的输入与输出*/ #include stdio.h main( ) char ch; ch=getchar( ); putchar(ch);
22、putchar(n); 程序的运行情况:程序的运行情况: A A 需要注意的是,程序中如果调用了需要注意的是,程序中如果调用了putchar()函数或函数或getchar()函数,则在程序的开头必须加上函数,则在程序的开头必须加上“#include stdio.h”或或“#include ”,否则,程序编译时会报错。,否则,程序编译时会报错。作业:作业:.以下程序的输出结果是()以下程序的输出结果是()#include main()int i=4,a; a=i+; printf(“a=%d,i=%d”,a,i); A)a=4; i=4 B)a=5;i=4 c)a=4; i=5 D)a=5; i=5.在语言中,要求参加运算的数必须是整数的运算符是()在语言中,要求参加运算的数必须是整数的运算符是()A)% B) / C) + D) *3. 使用语句使用语句 scanfscanf(“x=%f,y=%f”,&x,&y);(“x=%f,y=%f”,&x,&y);输入变量输入变量x,yx,y的值的值( (代表空代表空格格),),正确的输入是正确的输入是? ?A) 1.25,2.4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光伏发电项目屋顶租赁合同
- 广西小学教学楼合同协议书
- 海外打工合同书
- 合同到期声明范本
- 2024年广州客运资格证应用能力试题及答案详解
- 2024对外建筑工程承包合同
- 2024家庭农场土地租赁合同
- 深圳大学《自然辩证法》2021-2022学年第一学期期末试卷
- 鱼肉购销合同(2篇)
- 种植松树协议书(2篇)
- 建设项目设计管理方案
- 2024年届海南航空控股股份有限公司招聘笔试参考题库含答案解析
- 前程无忧在线测试题库及答案行测
- 手术室突发事件的紧急处理与应急演练
- 《军事理论》课程标准
- 仓库货物条码管理培训
- 第六章-中国早期社会学中的社区学派-《中国社会学史》必备
- 太阳能发电技术在航天与航空领域的应用
- 大学生预防猝死知识讲座
- (2)反垄断法(字向东)
- 行政事业单位合同管理内部控制制度
评论
0/150
提交评论