版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C C程序中的输程序中的输入与输出入与输出程序设计基础CAUCJSJC C程序中数据的输入与输出程序中数据的输入与输出1.1. C+C+中的输入输出流对象中的输入输出流对象2.2. C C语言中的输入输出函数语言中的输入输出函数 在在C+ C+ 中引入术语中引入术语 streamstream(流),指的是(流),指的是来自设备或传给设备的一个数据流。来自设备或传给设备的一个数据流。coutcout表示输出流对象,它是输入输出流库的表示输出流对象,它是输入输出流库的一部分。与一部分。与coutcout 相关联的设备是显示器。在程相关联的设备是显示器。在程序中有了关联字序中有了关联字coutco
2、ut 就有了将数据流传到显示就有了将数据流传到显示器的条件,这时用插入操作符器的条件,这时用插入操作符“ ” ” 将其后将其后的数据插入到该流中去。比如下面的两条语句:的数据插入到该流中去。比如下面的两条语句: cout“welcome to CAUC”; coutendl;可以用下图可以用下图 来说明,放在引号来说明,放在引号“ ”中的字符串中的字符串welcome to CAUC 是要送给显示器设备的数据,用是要送给显示器设备的数据,用插入操作符将其传至显示设备上。插入操作符将其传至显示设备上。 endl 字符串之后字符串之后插入回车,直接将字符串写到屏幕上。插入回车,直接将字符串写到屏幕
3、上。welcome to CAUCcoutwelcome to CAUC显示器显示器插入操作符可以把多个输出数据组合或级插入操作符可以把多个输出数据组合或级联成单个的输出语句。比如下面的语句:联成单个的输出语句。比如下面的语句:cout “Welcome to CAUC,” “ I am a student.” ” ”可将输入流存储到一个事先可将输入流存储到一个事先定义好的变量中。如定义好的变量中。如: : float x ; cin x ; 第一条是定义了一个浮点数类型的对第一条是定义了一个浮点数类型的对象:变量象:变量x 第二条是用键盘敲入一个带小数点的第二条是用键盘敲入一个带小数点的数,
4、比如:数,比如: 3. 14159上上图图 描述了提取输入流的示意图描述了提取输入流的示意图有关什么是变量,如何从键盘输入数据的内容放到有关什么是变量,如何从键盘输入数据的内容放到下一章去讲。下一章去讲。X的地址的地址cin3.141593.14159键盘键盘C C语言没有提供输入输出语句,而是由输入输出语言没有提供输入输出语句,而是由输入输出标准库标准库函数来实现的。函数来实现的。 输出函数输出函数printf( ) 输入函数输入函数scanf( ) 应用举例应用举例C C语言中数据的输入与输出函数语言中数据的输入与输出函数printfprintf( )( )函数函数1 1、功能:按指定的格
5、式向终端输出若干任意类型的功能:按指定的格式向终端输出若干任意类型的数据。数据。2 2、格式:格式:printf( (格式控制,输出表列)格式控制,输出表列) 如:如:printf(“x=%d”,x)3 3、使用要点、使用要点 (1 1)格式控制部分的用法:格式控制部分的用法: (2 2)输出表列:可以是合法的常量、变量和表达式,输出项)输出表列:可以是合法的常量、变量和表达式,输出项表中的个输出项之间要用表中的个输出项之间要用“,”分隔。分隔。 (3 3)当格式符个数少于输出项时,多余的输出项不予输出。)当格式符个数少于输出项时,多余的输出项不予输出。 若格式符多于输出项时,各系统的处理有所
6、不同,若格式符多于输出项时,各系统的处理有所不同,VC VC 对于缺少的项将输出不定值。对于缺少的项将输出不定值。printfprintf( )( )函数的格式控制函数的格式控制1 1、格式控制字符是用双引号括起来的字符串,用来确定确定、格式控制字符是用双引号括起来的字符串,用来确定确定输出项的格式和需要原样输出的字符串。其组成形式为:输出项的格式和需要原样输出的字符串。其组成形式为: “普通字符串普通字符串 % % + + 0 m .nl0 m .nl格式控制字符格式控制字符”其中:其中:输出数据项的顺序一般按从左至右的顺序输出。格式控制中的普通输出数据项的顺序一般按从左至右的顺序输出。格式
7、控制中的普通字符串,照原样输出字符串,照原样输出; ; 如:如:printf(“aprintf(“a=%d=%d,b=%d”,a,b);b=%d”,a,b);% %:为:为C C语言规定的标记符语言规定的标记符; ;+ + :指定输出数据的对齐方式:指定输出数据的对齐方式:+ +为右对齐为右对齐( (可缺省);可缺省);- -为左对齐;为左对齐;0 0:指定输出的数据中不使用的位置是否填数字:指定输出的数据中不使用的位置是否填数字“0 0”关于关于m .nm .n与与l l的说明:的说明:格式控制字符格式控制字符用于指定数据的输出形式,可以包含转义字符,用于指定数据的输出形式,可以包含转义字符
8、,用两个连续的用两个连续的“%”表示输出字符表示输出字符“% %”。2 2、举例:举例:格式控制字符格式控制字符格格式式字字符符 说说明明d d以以带带符符号号的的十十进进制制形形式式输输出出整整数数o o以以无无符符号号的的八八进进制制形形式式输输出出整整数数x x以以无无符符号号的的十十六六进进制制形形式式输输出出整整数数u u以以无无符符号号的的十十进进制制形形式式输输出出整整数数c c以以字字符符形形式式输输出出一一个个字字符符s s输输出出字字符符串串f f以以小小数数形形式式输输出出单单, ,双双精精度度数数, ,隐隐含含输输出出六六位位小小数数e e以以标标准准指指数数形形式式输
9、输出出单单, ,双双精精度度数数, ,数数字字部部分分六六位位小小数数g g选选用用% %f f 或或% %e e 格格式式中中输输出出宽宽度度较较短短的的一一种种格格式式输输出出, ,不不输输出出无无意意义义的的 0 0printfprintf()()中的中的m.nlm.nl格式说明符格式说明符字字符符说说明明字字母母l l用用于于长长整整型型整整数数, ,可可加加在在格格式式符符d d, ,o o, ,x x, ,u u前前面面一一个个正正整整数数m m数数据据最最小小宽宽度度一一个个正正整整数数n n对对实实数数表表示示输输出出n n 位位小小数数; ;对对字字符符串串, ,表表示示截截
10、取取的的字字符符个个数数负负号号- -输输出出的的数数字字或或字字符符在在域域内内向向左左靠靠齐齐(1 1)printf(“%4d,%4d”,a,b); 若若a=123,b=12345 a=123,b=12345 则输出为:则输出为:123,12345123,12345 如果数据位数小于如果数据位数小于m m,则左端补空格,若大于,则左端补空格,若大于m m,则按实际输出。,则按实际输出。(2 2)long a=135790; printf(“%ld”,a); 长整型数据应采用长整型数据应采用%ld%ld格式输出,若采用格式输出,若采用%d%d格式则出错。格式则出错。(3 3)int a=-1
11、; printf(“%d,%o”,a,a); 输出为:输出为:-1-1,177777177777 对于八进制输出不会输出带符号的数据,长整型数据用对于八进制输出不会输出带符号的数据,长整型数据用%lo%lo格式输格式输出,也可以指定宽度。如:出,也可以指定宽度。如:printf(“%lo,%8o”,a,a);printf(“%lo,%8o”,a,a);(4 4)int a=-1; printf(“%x,%o,%d”,a,a,a); 输出结果为:输出结果为:ffff,177777,-1ffff,177777,-1 同样,也可以用同样,也可以用%lx%lx输出长整型数据或指出输出宽度,输出长整型数
12、据或指出输出宽度, 如:如:printf(“%lx,%12x”,a,a)scanfscanf()()函数函数1 1、功能:、功能: 将从终端(键盘)输入的数据传送给对应的变量。将从终端(键盘)输入的数据传送给对应的变量。2 2、格式:、格式:scanf( (格式控制,输入项地址表)格式控制,输入项地址表) 说明:说明:格式控制的含义同格式控制的含义同printf函数,函数,“% %格式控制字符格式控制字符” ” 输入项地址表由若干个地址组成,代表每一个变量在内存的地输入项地址表由若干个地址组成,代表每一个变量在内存的地址。表示为:址。表示为:& &变量(或数组与字符串的首地址)
13、变量(或数组与字符串的首地址)每次调用每次调用scanf( )函数后,函数将得到一个整型函数值,此值等函数后,函数将得到一个整型函数值,此值等于正常输入数据的个数于正常输入数据的个数3 3、使用要点:使用要点:scanfscanf()()函数的使用要点函数的使用要点1 1、格式符的个数必须与输入项的个数相等,数据类型必须从左、格式符的个数必须与输入项的个数相等,数据类型必须从左至右一一对应。至右一一对应。2 2、scanf( )函数中常用的格式符有:函数中常用的格式符有:3 3、用户可以指定输入数据的域宽,系统将自动按此域宽截取所、用户可以指定输入数据的域宽,系统将自动按此域宽截取所读入的数据
14、,如:读入的数据,如:scanf(“%3d%3d”,&a,&b);输入输入123456123456系统自动将系统自动将123123赋值给赋值给a,a,将将456456赋值给赋值给b.b.4 4、输入实型数据时,用户不能规定小数点后的位数。、输入实型数据时,用户不能规定小数点后的位数。scanf(“%7.2f”,&a);是错误的是错误的. .5 5、输入实型数据时,可以不带小数点,即按整型数方式输入。、输入实型数据时,可以不带小数点,即按整型数方式输入。scanfscanf()()函数的使用要点函数的使用要点6 6、从终端输入数值数据时,遇下述情况系统将认为该项数据、从终
15、端输入数值数据时,遇下述情况系统将认为该项数据结束:结束:遇到空格、回车符或制表符(遇到空格、回车符或制表符(TABTAB),故可用它们作为数值数据),故可用它们作为数值数据间的分隔符;间的分隔符;遇到宽度结束,如遇到宽度结束,如“%4d”%4d”表示只取输入数据的前表示只取输入数据的前4 4列。列。遇到非法输入,如:假设遇到非法输入,如:假设a a为整型变量,为整型变量,chch为字符型变量,对于:为字符型变量,对于: scanf(“%d%c”,&a,&ch); 若输入若输入246a, 246a, 则系统将认为:则系统将认为:a=246,ch=aa=246,ch=a7 7、在
16、使用、在使用%c%c格式符时,输入的数据之间不需要分隔符标志;格式符时,输入的数据之间不需要分隔符标志;空格、回车符都将作为有效字符读入。空格、回车符都将作为有效字符读入。scanf(“%c%c%c”,&a,&b,&c);输入输入b bo oy yb b赋值给赋值给a,a,赋值给赋值给b,ob,o赋值给赋值给c cscanfscanf()()函数的使用要点(函数的使用要点(3 3)8 8、如果格式控制字符串中除了格式说明之外,还包含其它字、如果格式控制字符串中除了格式说明之外,还包含其它字符,则输入数据时,在与之对应的位置上也必须输入与符,则输入数据时,在与之对应的位置
17、上也必须输入与这些字符相同的字符。这些字符相同的字符。 如:如:scanf(“Enter a number: %d”,&x); scanf(“%d%d”&a,&b); 输入格式输入格式 122 23 scanf(“%d,%d”,&a,&b); 输入格式输入格式 122,23 scanf(“a=%d,b=%d”,&a,&b); 输入格式输入格式 a=123,b=239 9、格式说明、格式说明% %* *表示跳过对应的输入数据项不予读入。表示跳过对应的输入数据项不予读入。如如:scanf(“%2d %:scanf(“%2d %* *2d %2
18、d”,&a,&b);2d %2d”,&a,&b); 若输入若输入12 345 6712 345 67 则则1212赋给赋给a,67a,67赋给赋给b,b,而而345345没有赋给任何数据没有赋给任何数据. .1010、在标准、在标准C C中不使用中不使用%u%u格式符格式符, ,对对unsignedunsigned型数据以型数据以%d,%x,%o%d,%x,%o格式输入。格式输入。格式说明:格式说明:附加格式说明:附加格式说明:格格式式字字符符说说明明d d以以十十进进制制形形式式输输入入整整数数o o以以八八进进制制形形式式输输入入整整数数x x以以十十六六进
19、进制制形形式式输输入入整整数数c c以以输输入入一一个个字字符符s s输输入入字字符符串串, ,将将字字符符串串送送到到一一个个字字符符数数组组中中, ,在在输输入入时时以以非非空空白白字字符符开开始始, ,以以第第一一个个空空白白字字符符结结 束束. .字字符符串串以以 0 0作作为为结结束束标标志志f f以以小小数数形形式式或或指指数数输输入入实实数数e e以以 f f 格格式式相相同同字字 符符说说 明明l l用用 于于 输输 入入 长长 整整 型型 数数 据据 以以 及及 d do ou ub bl le e 型型 数数 据据h h用用 于于 输输 入入 短短 整整 型型 数数 据据域
20、域 宽宽 ( (为为 一一 正正 整整 数数 ) )指指 定定 输输 入入 数数 据据 所所 占占 宽宽 度度* *表表 示示 本本 输输 入入 项项 在在 读读 入入 后后 不不 赋赋 给给 相相 应应 的的 变变 量量例例exp1:exp1:请阅读并分析以下程序的运行情况与结果。请阅读并分析以下程序的运行情况与结果。#include main() unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%x,%o,%un”,b,b,b,b); 输出为输出为a=-1,177777,ffff,
21、65535a=-1,177777,ffff,65535b=-2,fffe,177776,65534b=-2,fffe,177776,65534例例exp2:exp2:请阅读并分析以下程序的运行情况与结果。请阅读并分析以下程序的运行情况与结果。main() char c=a; int k=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,k,k); 输出为:输出为:a,97a,97a,97a,97例例exp3:输出字符串输出字符串printf(“%s”,”china”);输出字符串输出字符串chinaprintf(“%7sn”,”china”);输出字符串输出字符串chinaprintf(“%3sn”,”china”);输出字符串输出字符串chinaprintf(“%5.3sn”,”china”);输出字符串输出字符串chiprintf(“%-5.3sn”,”china”);输出为输出为chi例例exp4:exp4:实型数据实型数据#include main() float x,y,z;double a,b; x=1111
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南中医药高等专科学校附属第一医院医护人员招聘笔试备考试题及答案详解
- 2026年青海省人民医院医护人员招聘笔试备考题库及答案详解
- 2026年上海交通大学医学院附属第九人民医院医护人员招聘笔试备考试题及答案详解
- 2026年来宾市人民医院医护人员招聘笔试参考题库及答案详解
- 2026年厦门大学附属中山医院金榜分部医护人员招聘笔试备考试题及答案详解
- (2026版)学校生活饮用水卫生管理规章制度
- 2026年南通市肿瘤医院医护人员招聘考试备考题库及答案详解
- 2026年上海交通大学医学院附属瑞金医院北院医护人员招聘考试参考试题及答案详解
- 2026年辽阳市中心医院医护人员招聘考试备考题库及答案详解
- 2026年西南医科大学附属中医医院医护人员招聘笔试参考试题及答案详解
- 2025年上海市初中学业水平考试地理真题(含答案)
- 溶血性贫血病例分析
- 外研版七年级下册英语Unit4过关训练(含答案)
- 华为视觉识别规范手册中文版
- 恶性心律失常的急诊处理
- 汽车零部件制造质量提升改进计划
- 黑龙江龙东历年中考语文文言文阅读试题18篇(含答案与翻译)(截至2024年)
- 腺样体的术后护理
- 第十四讲 0度探头探伤讲解
- 中医护理方案培训
- DLT802.7-2023电力电缆导管技术条件第7部分非开挖用塑料电缆导管
评论
0/150
提交评论