版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章惯用输入输出函数第1页2.1C语言输入输出概述2.2printf函数2.3scanf函数2.4字符数据输入输出2.5字符串输入输出第2页2.1C语言输入输出概述(一).所谓输入输出是以计算机主机为主体而言输出:从计算机向外部输出设备(显示器,打印机)输出数据输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据.第3页(二).C语言本身不提供输入输出语句,输入和输出操作是由C函数库中函数来实现比如:字符输入函数:getchar字符输出函数:putchar格式输入函数:scanf格式输出函数:printf字符串输入函数:gets字符串输出函数:puts第4页(三).在使用系统库函数时,要用预编译命令“#include”将相关“头文件”包含到用户源文件中。比如:在调用标准输入输出库函数时,文件开头应该有:#include<stdio.h>或:#include“stdio.h”两种方式查找头文件路径不一样 "stdio.h"从当前工程目录下开始搜索文件
<stdio.h>从库文件目录下开始搜索文件头文件第5页2.2printf函数printf函数(格式输出函数)作用是向系统隐含指定输出设备(显示器)输出若干个任意类型数据
。printf函数普通格式为: printf(格式控制,输出表列);例: printf(”%d,%c\n”,i,c);第6页printf函数参数包含两部分:
(1)“格式控制”是用双引号括起来字符串,也称“转换控制字符串”,它包含两种信息。 ①格式说明。格式说明由“%”和格式字符组成,如%d、%f等。它作用是将输出数据转换为指定格式输出。②普通字符或转义字符。即需要原样输出字符。
(2)“输出表列”是需要输出一些数据,能够是常量、变量或表示式。第7页printf函数例子:printf(“a=%db=%d”,a,b)|
||||格式说明输出表列若a=3,b=4输出为a=3b=4第8页2.2.2printf函数格式字符格式字符用以指定输出项数据类型和输出格式。基本格式字符有以下几个:
⑴%d
%d:按十进制整型数据实际长度输出。 %md:按照指定宽度m输出,实际位数小于m,则左端补空格,位数大于m,则按实际位数输出。
%-md:实际位数小于m,则右端补空格。 %ld:输出长整型数据。
第9页#include<stdio.h>voidmain(){ inta=-2,b=25,c=123; longx=456710; printf("%d,%4d,%-4d,\n",a,b,b);
/*%-4d中负号表示显示时在右端补空格*/ printf("%5d,%2d\n",c,c); printf("ld,%8ld\n",x);}第10页(2)%c
%c:用来输出一个字符。 %mc:输出字符数据宽度为m,位数不足时在左侧补空格。c=‘a’;printf(“%3c”,c);输出:__a第11页例:#include<stdio.h>voidmain(){ charch='A'; intx=97; printf("%c,%3c,%d\n",ch,ch,ch); printf("%c,%d,%4d\n",x,x,x);}第12页(3)%f %f用来输出实数(包含单、双精度),以小数形式输出,不指定整个字段长度,由系统自动指定。 普通处理方法是:整数部分全部输出,并输出6位小数。 %m.nf指定数据占m列,其中小数位数为n列,假如整体位数小于m,则左端补空格(右对齐)。 %-m.nf(左对齐)第13页例输出实数时有效位数。
#include<stdio.h>
voidmain()
{floatx,y;
x=222222.222;y=333333.333;
printf("%f\n",x+y);
}运行结果:555555.562500结果中只有前七位是有效数字。因为x和y是单精度变量,所以x+y也只能确保7位精度,后面几位是没有意义。
第14页例输出双精度数时有效位数。
#include<stdio.h>
voidmain()
{doublex,y;
x=22222222.22222222;
y=33333333.33333333;
printf("%f\n",x+y);
}运行结果:55555555.555556x和y是双精度变量,能提供16位精度,不过因为用%f格式输出,只能输出6位小数,有两位被省掉了。第15页例输出双精度数时有效位数。
#include<stdio.h>
voidmain()
{
floatx=123.45;
doubley=456.5263789;
printf("%f,%7.2f\n",x,x);
printf("%f,%7.2f\n",y,y);
}第16页例求3个圆周长,输出结果时上下按小数点对齐,取两位小数。
#include<stdio.h>
#definePI3.1415926
voidmain()
{doubler1=1.53,r2=21.83,r3=123.71,s1,s2,s3;
s1=2.0*PI*r1;
s2=2.0*PI*r2;
s3=2.0*PI*r3;
printf(“s1=%10.2f\ns2=%10.2f\ns3=%10.2f\n",s1,s2,s3);
}
第17页(4)s格式符,用来输出一个字符串。例:printf(“%s”,”CHINA”);输出字符串:CHINA%ms:输出字符串占m列,串长小于m,则左补空格,串长大于m,则全部显示%-ms:输出字符串占m列,串长小于m,则右补空格,串长大于m,则全部显示%m.ns:输出m列,只取字符串中左端n个字符,串小于m,则左补空格%-m.ns:输出m列,只取字符串中左端n个字符,串小于m,则右补空格第18页#include<stdio.h>voidmain(){ printf(“%3s,%7.2s,%.4s,%-5.3s.\n","STUDENT","STUDENT","STUDENT","STUDENT");}第19页(5)e格式符,用格式说明%e指定以指数形式输出实数。
例:printf(″%e″,123.456);输出以下
1.234560
e+002
6列5列C编译系统自动指定给出数字部分小数位数为6位,指数部分占5位第20页(6)%o。以8进制整数形式输出。因为是将内存单元中各位值(0或1)按八进制形式输出,所以输出数值不带符号,即将符号位也一起作为八进制数一部分输出。例:inta=-1;//4字节为例printf("%d,%o",a,a);
输出为:-1,37777777777第21页(7)%x。以16进制数形式输出整数。一样不会出现负十六进制数。例:inta=-1;printf(“%x,%o,%d”,a,a,a);输出结果为ffffffff,37777777777,-1一样能够用“%lx”输出长整型数,也能够指定输出字段宽度,如“%12x”。第22页(8)%u。用来输出无符号(unsigned)型数据,以十进制整数形式输出。 一个有符号整数(int型)也能够用%u格式输出;反之,一个unsigned型数据也能够用%d格式输出。 unsigned型数据也可用%o或%x格式输出。
第23页例无符号数据输出。
#include<stdio.h>
voidmain()
{
unsignedinta=65535;intb=-2;
printf(“a=%d,%o,%x,%u\n”,a,a,a,a);
printf(“b=%d,%o,%x,%u\n”,b,b,b,b);
}
第24页说明:除了X,E,G外,其它各式字符必须用小写。能够在printf函数中“格式控制”字符串中包含转义字符。一个格式说明必须以“%”开头,以9个格式字符之一为结束,中间能够插入附加格式字符。想输出%,则应该在格式控制字符串中用连续两个%表示比如:
printf("一年期利率为%4.2f%%\n",rate);第25页2.3scanf函数scanf函数作用:格式化输入函数,按指定格式从键盘读入数据,存入地址表指定存放单元中(按照变量在内存地址将变量值存进去)。普通格式:scanf(格式控制,地址表列);同printf函数是由若干个地址组成表列,能够是变量地址,或字符串首地址第26页例用scanf函数输入数据。
#include<stdio.h>
voidmain()
{
inta,b,c;
printf(“请输入a,b,c:\n”);
scanf(“%d%d%d”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}
运行情况:
请输入a,b,c:
345(输入a,b,c值,)
a=3,b=4,c=5(输出a,b,c值)a在内存中地址&是地址运算符输入数据时,在两个数据之间以一个或多个空格间隔,也能够用Enter键、Tab键。第27页scanf函数格式说明与printf函数相同,以%开始,以一个格式字符结束,中间可插入附加字符。
例:scanf(”%d%d%d”,&a,&b,&c);/*格式控制字符串中包含3个格式说明符%d*/scanf(”a=%db=%dc=%d”,&a,&b,&c);/*格式控制字符串中包含格式说明符以外字符*/第28页说明:scanf函数中“格式控制”后面应该是变量地址,而不应是变量名。(普通变量名前必须要加取地址运算符&,只有数组名和指针变量名前不需要加)(2)假如在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时在对应位置应输入与这些字符相同字符。(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。例2-14第29页说明:对unsigned型变量所需要数据,能够用%u,%d或%o,%x格式输入。能够指定输入数据所占列数,系统自动按它截取所需数据。例2-16输入数据时不能要求精度(%m.nf)。假如在%后有一个“*”附加说明符,表示跳过它指定列数。例2-18在输入数据时,空格、“回车”、“跳格”(Tab)键或遇非法输入,认为该数据结束。 例2-20第30页2.4字符数据输入输出
2.4.1putchar函数putchar函数(字符输出函数)作用是向终端输出一个字符。普通形式为putchar(c);
c能够是字符型/整型变量或常量第31页例输出单个字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
运行结果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);运行结果:BOY第32页3.5.2用getchar函数输入一个字符
getchar函数(字符输入函数)作用是从计算机终端输入一个字符。
getchar函数没有参数,普通形式为getchar()注意:假如输入多个字符,只接收第一个字符函数值就是从输入设备得到字符
第33页#include<stdio.h>voidmain(){charch;printf("inputacharacter\n");ch=getchar();putchar(ch);putchar(‘\n’);}putchar(getchar());printf(“%c”,getchar());运行程序:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年资本充足率监督书
- 2027届阜新市海州区数学三上期末达标检测试题含解析
- 2026能源行业融资策略与市场趋势研究报告
- 2026中国通信服务行业市场发展现状及投资评估规划报告
- 宜昌市虎亭区2027届四上数学期末学业水平测试模拟试题含解析
- 铜陵市铜官山区2027届数学四上期末综合测试试题含解析
- 随州市2025年湖北随州市事业单位统一公开招聘工作人员442人笔试历年参考题库典型考点附带答案详解
- 阳城县2024山西晋城市阳城县部分事业单位招聘118人笔试历年参考题库典型考点附带答案详解
- 金溪县2025江西抚州市金溪县农业农村局招聘机关门卫人员1人笔试历年参考题库典型考点附带答案详解
- 鄞州区2025年浙江宁波市鄞州区住房和城乡建设局下属事业单位编外招聘2人笔试历年参考题库典型考点附带答案详解
- 五年级下册数学课件-思维拓展训练:5.12-环形跑道问题-全国-(共17张)全文
- 自助餐厅促销活动方案策划书
- (必会)《社会工作综合能力(初级)》近年考试真题题库(300题)
- (正式版)JBT 5300-2024 工业用阀门材料 选用指南
- 陕西省住宅物业承接查验备案表、住宅物业承接查验协议示范文本、移交资料清单
- 燃气锅炉故障及解决方法及燃气锅炉管理制度
- 高架车使用安全规定
- ISOIEC17025:2017CNAS-CL01:2018《检测和校准实验室能力认可准则》
- 结构化学课件-金属晶体与离子晶体的结构
- GB/T 6730.18-2006铁矿石磷含量的测定钼蓝分光光度法
- GB/T 33772.1-2017质量评定体系第1部分:印制板组件上缺陷的统计和分析
评论
0/150
提交评论