版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章格式化输入输出Printf()Scanf()Putchar()Getchar()
3.1格式化输出函数——printf()printf()函数的一般格式
作用:向输出设备输出若干个任意类型的数据。
一般格式:
printf("格式字符串"[,输出项表]);
说明:
1.格式字符串也称“转换控制字符串”,包含三种字符:
(1)格式说明符:%[附加格式说明][格式字符]
(2)转义字符
(3)普通字符──原样输出。
例如:
printf(“radius=%f,length=%f,area=%f\n”,r,l,s);
—m.nl[例3.1]已知圆半径radius=1.5,求圆周长和圆面积。
#definePI3.1415926main()
{floatradius,length,area;
radius=1.5;
length=2*PI*radius; /*求圆周长*/
area=PI*radius*radius; /*求圆面积*/
printf(“radius=%f\n”,radius); /*输出圆半径*/
printf(“length=%7.2f,area=%7.2f\n”,length,area);/*输出圆周长、面积*/
}
运行结果:
radius=1.500000length=9.42,area=7.07 inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+002567.789000567.789%说明 格式字符要用小写,只有x|e|g三个格式字符可以用大写字母。用大写字母时,输出数据中包含的字母也大写格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出附加格式说明符(修饰符).n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰符功能m输出数据域宽,数据长度<m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l
2.输出项表可选项。用逗号分隔的表达式。例:下面的printf()函数都是合法的:
(1)printf("Iamastudent.\n"); (2)printf("%d",3+2); (3)printf("a=%fb=%5d\n",a,a+3); 注意:“格式字符串”中的格式指示符,必须与“输出项表”中相应输出项的数据类型一致,否则会引起输出错误。
3.2格式字符(9个)
输出不同类型的数据,要使用不同的格式字符。
1.d──以带符号的十进制整数形式输出。
[例3.2]类型转换字符d的使用。main(){intnum1=123;longnum2=123456;/*用4种不同格式,输出int型数据num1的值*/printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1);/*用3种不同格式,输出long型数据num2的值*/printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);}
运行结果:num1=123,num1=□□123,num1=123□□,num1=123num2=123456,num2=□□123456,num2=123456
对于整数,还可用:%o:八进制无符号形式输出
%x:十六进制无符号形式输出对于unsigned型数据,也可用
%u:以十进制无符号形式输出。例如:printf("%d,%o,%x,%u\n",-1,-1,-1,-1);运行结果:-1,177777,ffff,65535
2.f──以小数形式,输出单精度/双精度实数。[例3.3]类型转换字符f的使用。main(){floatf=123.456;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);printf("d1+d2=%f\n",d1+d2); 运行结果:123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46d1+d2=3333333333333.333010
说明:输出结果中,数据123.456001和3333333333333.333010中的01和010都是无意义的,因为它们超出了有效数字的范围。对于实数,还可使用格式符:%e:以标准指数形式输出。尾数:整数部分:为1位非0数字;小数点:占一位;小数部分:占6位;指数:占5位(如e-003);共计13位。
%g:自动选择%f或%e格式中较短者、不输出无意义零。3.c──输出一个字符。[例3.4]类型转换字符c的使用。main(){charc='A';inti=65;printf("c=%c,%5c,%d\n",c,c,c);printf("i=%d,%c",i,i);}程序运行结果如下:
c=A,□□□□A,65i=65,A
注意:C语言中,整数可以字符形式输出,字符数据也可以用整数形式输出。注意c的不同含义4.s──输出一个字符串。[例3.5]类型转换字符s的使用。main(){printf("%s,%5s,%-10s\n","Internet","Internet","Internet");printf("%10.5s,%-10.5s","Internet","Internet");printf("%4.5s\n","Internet");} [程序演示]程序运行结果如下:Internet,Internet,Internet□□□□□□□Inter,Inter□□□□□,Inter注意:系统输出字符和字符串时,不输出单引号和双引号。
3.3格式化输入——scanf()函数作用:从外部输入设备向计算机主机输入数据。scanf()函数的一般格式
scanf()函数的一般格式scanf(“%[附加格式说明]格式字符串”,输入项首地址表);附加格式说明符(修饰符)例scanf(“%4d%2d%2d”,&yy,&mm,&dd);
输入19991015
则1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);
输入12345678765.43则123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);
输入1234567则12a,67b例scanf(“%3c%2c”,&c1,&c2);
输入abcde
则‘a’c1,‘d’c23.4数据输入操作
1.一般用空格作分隔符例如:scanf("%d%d",&num1,&num2);
若要输入12给num1,输入36给num2,则正确的输入操作为:
12□36↙
或者:12↙
36↙求地址运算符2.“格式字符串”中出现的普通字符,务必原样输入。例如,scanf("%d,%d",&num1,&num2);
假设输入12给num1,给输入36num2,正确的输入操作为:12,36↙
注意:scanf()函数中,格式字符串内的转义字符(如\n),系统将其视为普通字符,所以也要原样输入。
例如:
scanf("num1=%d,num2=%d\n",&num1,&num2);
假设输入12给num1,给输入36num2,正确的输入操作为:
num1=12,num2=36\n↙
建议:为改善人机交互性,同时简化输入操作,设计输入格式时,宜先用printf()函数输出提示信息。例如:不宜用
scanf("num1=%d,num2=%d\n",&num1,&num2);
应用:
printf("num1=");scanf("%d",&num1);printf("num2=");scanf("%d",&num2);
或用:
printf("num1,num2=");scanf("%d,%d”,&num1,&num2);3.输入数据时,遇以下情况系统认为该数据结束:
(1)遇到空格、回车键或者Tab键。
(2)遇到输入域宽度结束。例如“%3d”,只取3列。
(3)遇到非法输入。
4.使用“%c”输入单个字符时,空格和转义字符均作为有效字符被输入。例如:
scanf("%c%c%c",&ch1,&ch2,&ch3);printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3);
假设输入:A□B□C↙
则系统将:字母'A'赋值给ch1,空格'□'赋值给ch2,字母'B'赋值给ch3。如scanf(“%d%c%f”,&a,&b,&c);
若输入1234a123o.26
则1234a,‘a’b,123c3.5单个字符输入输出——getchar()和putchar()函数单个字符的输出──putchar()函数[例3.6]putchar()函数的格式和使用方法。#include"stdio.h" /*编译预处理命令:文件包含*/main(){charch1='N',ch2='E',ch3='W';putchar(ch1);putchar(ch2);putchar(ch3); /*输出*/putchar('\n');putchar(ch1);putchar('\n’);/*输出ch1的值,并换行*/putchar('E');putchar('\n’);/*输出字符'E',并换行*/putchar(ch3);putchar('\n');}
运行结果:
NEWNEW1.格式:putchar(ch);
其中ch可以是一个字符变量或常量,也可以是一个转义字符。
2.作用:向终端输出一个字符。
3.说明:
(1)只能用于单个字符的输出,且一次只能输出一个字符。
(2)要使用putchar()函数,必须在程序的开头加上编译预处理命令(也称包含命令),即:
#include<stdio.h>表示要使用的函数,包含在标准输入输出(stdio)头文件(.h)中。3.6单个字符的输入──getchar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025下半年四川凉山越西县招聘中小学教师100人高频重点提升(共500题)附带答案详解
- 2025上海市体育发展服务中心拟聘人员历年高频重点提升(共500题)附带答案详解
- 2025上半年浙江杭州市五云山医院高层次、紧缺专业人才招考聘用4人通知高频重点提升(共500题)附带答案详解
- 2025上半年四川遂宁市安居区部分事业单位考试招聘7人高频重点提升(共500题)附带答案详解
- 2025上半年四川省自贡市事业单位招聘(1121人)高频重点提升(共500题)附带答案详解
- 建筑装饰翰林府施工合同
- 传媒公司制片人聘任合同
- 建筑材料质量检验操作手册
- 2024圆通速递快递服务收费标准及合同规定3篇
- 2024年离婚财产分割夫妻合同标准格式版B版
- 内蒙古自治区呼和浩特市部分学校2023-2024学年九年级上学期期末数学试卷
- 儿科重症肺炎的康复治疗方案
- 文物保护工作的调研报告(16篇)
- 成长计划300字初中综合素质评价初三
- 口腔科会员制度
- 2023新能源场站一次调频控制系统技术规范
- 七年级上册数学期末考试(难的)
- 胸痛中心培训急性胸痛患者的早期快速甄别
- 北京汇文中学新初一均衡分班语文试卷
- 国家开放大学电大《政治学原理》期末试题标准题库及答案(试卷号2208)
- 医院PACS系统存储解决方案
评论
0/150
提交评论