资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
*1/38本章学习内容本章学习内容 字符输出函数字符输出函数putcharputchar()() 字符输入函数字符输入函数getchargetchar()() 数据的格式化输出函数数据的格式化输出函数printfprintf()() 数据的格式化输入函数数据的格式化输入函数scanfscanf() () 第第4 4章章 键盘输入键盘输入 和屏幕输出和屏幕输出*2/384.14.1单个字符的输入单个字符的输入/ /输出输出 通过调用标准库函数来实现通过调用标准库函数来实现# #includeinclude 字符输出函数字符输出函数 putchar(chputchar(ch) ) 输出输出一个一个字符字符chch 字符输入函数字符输入函数 getchargetchar()() 无参数无参数 函数值为从输入设备接收的字符函数值为从输入设备接收的字符*3/38【例例4.14.1】大小写英文字母转换大小写英文字母转换Press a key and then press Enter: Bbch = ch - (a A); What does this statement mean?*4/38printf()函数的作用:向计算机系统默认的 输出设备(一般指终端或显示器)输出一个或多个 任意类型的数据。 printf()函数的一般格式: printf(“格式控制字符串“ ,输出项表);可以是零个或多个输出项:可以是 常量或变量表达式,用逗号分隔。用双引号括起来,控制 输出项的格式和输出一 些提示信息 4.2数据的格式化屏幕输出*5/38printf (“i =%d ,%cn”, i, i );普通字符, 在屏幕上按原样输出转义字符指明特定的操 作,n表示换行而格式说明部分由%和格式字符组成输输出 项项*6/381格式控制字符串。可以包含以下三种字符: (1)输出项的格式说明。格式说明的一般形式如下: %FlagsWidth.prech|L格式指示符Flags为选择的标志字符。常用的有: - : 为左对齐,否则右对齐 +:正数输出+,负数输出- 空格:正数输出空格,负数输出-Width为宽度指示符。用十进制数来设置输出值的最少 输出位数。数据宽度大于Width ,按实际宽度输出数据宽度小于Width时,补空格.prec为精度指示符。用小数点加十进制正整数构成, 用来限制输出数的精度。*7/38h|L为长度修饰符: h短整型数据的值 L长整型数据的值格式指示符:用来进行格式转换d以带符号的十进制形式输出整数(正数不输出符号) o以八进制无符号形式输出整数(不输出前导符O) x(X)以十六进制无符号形式输出整数(不输出前导符Ox) u以无符号十进制形式输出整数 c以字符形式输出一个字符s输出字符串 f以小数形式输出单、双精度数,隐含输出6位小数 e(E)以标准指数形式输出单、双精度数,小数位数为6位 *8/38(2)转义字符 (3)普通字符除格式指示符和转义字符之外的其它字 符。格式字符串中的普通字符,原样输出。2输出项表输出项表是可选的。如果要输出的数据不止1个, 相邻2个之间用逗号分开。下面的printf()函数都是合法的 :(1)printf(“I am a student.n“);(2)printf(“%d“,3+2);(3)printf(“a=%f b=%5dn“, a, b);必须强调:“格式字符串”中的格式指示符,必须与“输出 项表 ”中、输出项的数据类型一致,否 则会引起输出错误。*9/38【例例4.24.2】大小写英文字母转换大小写英文字母转换Press a key and then press Enter: Bb, 98*10/38printfprintf() ()的格式修饰符的格式修饰符Format for float: %f%f General format: % . f fExample:printf(“Value is:%10.4f“, 32.6784728); Value is: 32.6785 10 characters4 digits*11/38printfprintf() ()的格式修饰符的格式修饰符Example:printf(“Value is:%10f“, 32.6784728); Value is: 32.67847310 characters6 digits (default)*12/38Example:printf(“Value is:%.3f“, 32.6784728); Value is:32.678 3 digitsprintfprintf() ()的格式修饰符的格式修饰符*13/38Input r: 5.3 printf WITHOUT width or precision specifications: circumference = 33.300854, area = 88.247263 printf WITH width and precision specifications: circumference = 33.30, area = 88.25【例例4.34.3】计算圆的周长和面积计算圆的周长和面积*14/38在程序中给变给变 量提供数据,可以用赋值语赋值语 句,也 可以用输输入函数。 scanf()函数的作用:通过键盘输过键盘输 入,同时时提供 一个或多个任意类类型的数据。scanf()函数的一般格式:scanf(“格式控制字符串”, 输输入项项首地址 表); 1、格式控制字符串:包含3种类类型的字符(1)格式说说明:格式说说明的一般形式为为:%* 宽宽度 h|l 类类型字符* 本输入项在读入后不赋给相应的变量宽宽度n 该项输该项输 入数据所占列数为为n。4.3数据的格式化键盘输入*15/38换句话说,读取输入数据中相应的n位,但按需要的位数赋 给相应的变量,多余部分被舍弃。例如,scanf(“%3c%3c“,printf(“ch1=%c,ch2=%cn“,ch1,ch2); 假设输入“abcdefg”,则系统将读取的“abc”中的“a”赋给变量 ch1;将读取的“def”中的“d”赋给变量ch2,所以printf()函数的输 出结果为:ch1=a,ch2=d。又如,scanf(“%2d%3d“,printf(“ch1=%d,ch2=%dn“,ch1,ch2); 假设输入“1234567”,则系统将读取12赋给变量ch1;将读取 345赋给变量ch2,所以printf()函数的输出结果为: ch1=12,ch2=345。类型修饰符h、l。其含义与printf()中的一样,分别为短整型和长整型(双精度) 。 *16/38格式指示符格式指示符是必须的,表示输入后转换的数据类 型。与printf函数格式中的格式指示符相同。d以带符号的十进制形式读入一个整数o以八进制无符号形式读入一个整数x(X)以十六进制无符号形式读入一个整数u以无符号十进制形式读入一个整数 c以字符形式读入一个字符s读入一个字符串 f以小数形式读入一个单精度数e(E)以标准指数形式读入一个单精度数*17/38(2)空白字符: (空格、Tab键和回车键):作为相邻2 个输入数据的缺省分隔符;(3)非空白字符(又称普通字符):普通字符不是显示的 而是规定在输入有效数据时,必须原样一起输入的字符。如:scanf(“ch=%d,f=%fn“,若要使ch值为3,f的值为56.6,则应怎样输入?2、输入项首地址表由若干个表示内存首地址的项 组成,相邻2个项之间,用逗号分开。内存首地址,可以是变量的首地址,也可以是字符数 组名或指针变量。 变量首地址的表示方法: a, b;printf(“Please input a and b:“); printf(“Please input a and b:“);scanf(“%2d scanf(“%2d%*2d%*2d%2d“, %2d“, printf(“a=%d, b=%d, printf(“a=%d, b=%d, a+b=%dn“,a,b,a+b);a+b=%dn“,a,b,a+b); Please input a and b:a=12, b=56, a+b = 68123456跳过一个输入项跳过一个输入项输入数据的格式控制输入数据的格式控制*19/38# #includeinclude main() main() intint a, b; a, b;scanf(“%d %d“, scanf(“%d %d“, printf(“a = %d, b = %dn“, a, b);printf(“a = %d, b = %dn“, a, b); 问题问题1 1:当要求程序输出结果为:当要求程序输出结果为a = 12, b = 34a = 12, b = 34 时,用户应该如何输入数据?时,用户应该如何输入数据? 12 3412 34 输入数据的格式控制输入数据的格式控制例例4.44.4*20/38# #includeinclude main() main() intint a, b; a, b;scanf(“%d %d“, scanf(“%d %d“, printf(“a = %d, b = %dn“, a, b);printf(“a = %d, b = %dn“, a, b); 问题问题2 2:当限定用户输入数据以逗号为分隔符,即输入数据:当限定用户输入数据以逗号为分隔符,即输入数据 格式为:格式为: 12,3412,34 时,应修改程序中的哪条语句?怎样修改?时,应修改程序中的哪条语句?怎样修改? , ,输入数据的格式控制输入数据的格式控制例例4.44.4*21/38# #includeinclude main() main() intint a, b; a, b;scanf(“%d %d“, scanf(“%d %d“, printf(“a = %d, b = %dn“, a, b);printf(“a = %d, b = %dn“, a, b); 问题问题3 3:语句:语句scanf(“%dscanf(“%d %d“, %d“, 修改为修改为 scanf(“scanf(“a a = = %d, %d, b =b = %d“, %d“, 时,用户应该如何输入数据?时,用户应该如何输入数据?a = 12, b = 34a = 12, b = 34 输入数据的格式控制输入数据的格式控制例例4.44.4*22/38# #includeinclude main() main() intint a, b; a, b;scanf(“%d %d“, scanf(“%d %d“, printf(“a = %d, b = %dn“, a, b);printf(“a = %d, b = %dn“, a, b); 问题问题4 4:限定用户输入数据为以下格式:限定用户输入数据为以下格式 12341234 同时要求程序输出结果为同时要求程序输出结果为a = 12, b = 34a = 12, b = 34%2d%2d%2d%2d 输入数据的格式控制输入数据的格式控制例例4.44.4*23/38# #includeinclude main() main() intint a, b; a, b;scanf(“%d %d“, scanf(“%d %d“, printf(“a
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号