c语言健盘输入与屏幕输出课件

上传人:20****08 文档编号:242459344 上传时间:2024-08-24 格式:PPT 页数:38 大小:383.42KB
返回 下载 相关 举报
c语言健盘输入与屏幕输出课件_第1页
第1页 / 共38页
c语言健盘输入与屏幕输出课件_第2页
第2页 / 共38页
c语言健盘输入与屏幕输出课件_第3页
第3页 / 共38页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,2024/8/24,38,/38,本章学习内容,字符输出函数,putchar(),字符输入函数,getchar(),数据的格式化输出函数,printf(),数据的格式化输入函数,scanf(),第,4,章 键盘输入,和屏幕输出,本章学习内容 字符输出函数putchar()第4章 键盘输,4.1,单个字符的输入,/,输出,通过调用标准库函数来实现,#,include,字符输出函数,putchar(ch),输出,一个,字符,ch,字符输入函数,getchar(),无参数,函数值为从输入设备接收的字符,4.1单个字符的输入/输出通过调用标准库函数来实现,【,例,4.1】,大小写英文字母转换,Press a key and then press Enter: B,b,ch = ch - (a A);,What does,this statement,mean?,【例4.1】大小写英文字母转换Press a key and,printf(),函数的作用:,向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。,printf(),函数的一般格式:,printf(,格式控制字符串, ,,输出项表,),;,可以是零个或多个输出项,:,可以是,常量或变量表达式,用逗号分隔。,用双引号括起来,控制,输出项的格式和输出一,些提示信息,4.2,数据的格式化屏幕输出,printf()函数的作用:向计算机系统默认的输出设备(一般,printf (“i =%d ,%cn”, i, i );,普通字符,,在屏幕上,按原样输出,转义字符指明特定的操作,,n,表示换行,而格式说明部分由,%,和格式字符组成,输出项,printf (“i =%d ,%cn”, i, i );,1,格式控制字符串,。,可以包含以下三种字符:,(,1,)输出项的格式说明。格式说明的一般形式如下:,%FlagsWidth.prech|L,格式指示符,Flags,为选择,的标志字符。常用的有:,-,:,为左对齐,否则右对齐,+,:正数输出,+,,负数输出,-,空格:正数输出空格,负数输出,-,Width,为宽度,指示符。用十进制数来设置输出值的最少输出位数。,数据宽度大于,Width,,按实际宽度输出,数据宽度小于,Width,时,补空格,.prec,为精度,指示符。用小数点加十进制正整数构成,用来限制输出数的精度。,1格式控制字符串。Flags为选择的标志字符。常用的有:,h|L,为长度修饰符,:,h,短整型数据的值,L,长整型数据的值,格式指示符,:,用来进行格式转换,d,以带符号的十进制形式输出整数(正数不输出符号),o,以八进制无符号形式输出整数(不输出前导符,O,),x(X),以十六进制无符号形式输出整数(不输出前导符,Ox,),u,以无符号十进制形式输出整数,c,以字符形式输出一个字符,s,输出字符串,f,以小数形式输出单、双精度数,隐含输出,6,位小数,e(E),以标准指数形式输出单、双精度数,小数位数为,6,位,h|L为长度修饰符:格式指示符:用来进行格式转换d以带符,(,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);,必须强调:,“格式字符串”中的格式指示符,必须与“输出项表 ”中、输出项的数据类型一致,否则会引起输出错误。,(2)转义字符,【,例,4.2】,大小写英文字母转换,Press a key and then press Enter: B,b, 98,【例4.2】大小写英文字母转换Press a key and,printf(),的格式修饰符,Format for float:,%f,General format:,%, . ,f,Example:,printf(Value is:%10.4f, 32.6784728);,Value is: 32.6785,10 characters,4 digits,printf()的格式修饰符Format for float,printf(),的格式修饰符,Example:,printf(Value is:%10f, 32.6784728);,Value is: 32.678473,10 characters,6 digits (default),printf()的格式修饰符Example:Value is,Example:,printf(Value is:%.3f, 32.6784728,);,Value is:32.678,3 digits,printf(),的格式修饰符,Example:Value is:32.678 3 digi,Input 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.3】,计算圆的周长和面积,Input r: 5.3【例4.3】计算圆的周长和面积,在程序中给变量提供数据,可以用赋值语句,也可以用输入函数。,scanf(),函数的作用,:通过键盘输入,同时提供一个或多个任意类型的数据。,scanf(),函数的一般格式,:,scanf(“,格式控制字符串”,输入项首地址表,);,1,、格式控制字符串:包含,3,种类型的字符,(,1,),格式说明:,格式说明的一般形式为:,%* ,宽度, h|l,类型字符,*,本输入项在读入后不赋给相应的变量,宽度,n,该项输入数据所占列数为,n,。,4.3,数据的格式化键盘输入,在程序中给变量提供数据,可以用赋值语句,也可以用输入函数。,换句话说,读取输入数据中相应的,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(),中的一样,分别为短整型和,长整型,(,双精度,),。,换句话说,读取输入数据中相应的n位,但按需要的位数赋给,格式指示符,格式指示符,是必须的,表示输入后转换的数据类型。与,printf,函数格式中的,格式指示符,相同。,d,以带符号的十进制形式读入一个整数,o,以八进制无符号形式读入一个整数,x(X),以十六进制无符号形式读入一个整数,u,以无符号十进制形式读入一个整数,c,以字符形式读入一个字符,s,读入一个字符串,f,以小数形式读入一个单精度数,e(E),以标准指数形式读入一个单精度数,格式指示符d以带符号的十进制形式读入一个整数o以八进制无符号,(,2,)空白字符:,(空格、,Tab,键和回车键):作为相邻,2,个输入数据的缺省分隔符;,(,3,)非空白字符,(又称普通字符):普通字符不是显示的而是规定在输入有效数据时,,必须原样一起输入的字符。,如:,scanf(“ch=%d,f=%fn,若要使,ch,值为,3,,,f,的值为,56.6,,则应怎样输入?,2,、,输入项首地址表,由若干个表示内存首地址的项组成,相邻,2,个项之间,用逗号分开。,内存首地址,可以是变量的首地址,也可以是字符数组名或指针变量。,变量首地址的表示方法:,&,变量名,其中“,&”,是地址运算符。,“,&ch”,是指变量,ch,在内存中的首地址,其意思是将整数,3,存放到以,&ch,为内存地址的内存空间中。,(2)空白字符: (空格、Tab键和回车键):作为相邻2个输,#,include,main(),int,a, b;,printf(Please input a and b:);,scanf(%2d,%*2d,%2d, ,printf(a=%d, b=%d, a+b=%dn,a,b,a+b);,Please input a and b:,a=12, b=56, a+b = 68,12,34,56,跳过一个输入项,输入数据的格式控制,#include Please inpu,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,1,:当要求程序输出结果为,a = 12, b = 34,时,用户应该如何输入数据?,12 34,输入数据的格式控制,例,4.4,#include 问题1:当要求程序输出,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,2,:当限定用户输入数据以逗号为分隔符,即输入数据格式为:,12,34,时,应修改程序中的哪条语句?怎样修改?,输入数据的格式控制,例,4.4,#include 问题2:当限定用户输入,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,3,:语句,scanf(%d %d, ,修改为,scanf(,a =,%d,b =,%d, ,时,用户应该如何输入数据?,a = 12, b = 34,输入数据的格式控制,例,4.4,#include 问题3:语句scanf,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,4,:限定用户输入数据为以下格式,1234,同时要求程序输出结果为,a = 12, b = 34,%2d%2d,输入数据的格式控制,例,4.4,#include 问题4:限定用户,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d , b = %d n, a, b);,问题,5,:限定用户输入数据为以下格式,12,34,同时要求程序输出结果为,a = 12 ,b = 34,%d,b =,%d,输入数据的格式控制,例,4.4,#include 问题5:限定用户,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,6,:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其他)作为分隔符进行数据的输入,输入数据的格式控制,例,4.4,%*c,#include 问题6:设计程序使得用,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,7,:输入,123456,时程序的输出结果是什么?,输入数据的格式控制,例,4.4,%*2d,a = 12, b = 56,#include 问题7:输入12345,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,8,:如果用户输入了非法字符,例如输入了,12 3a,,那么程序运行结果如何?,输入数据的格式控制,例,4.4,12 3a,a = 12, b = 3,#include 问题8:如果用户输入了,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,9,:如果用户输入的是,123a,,那么结果又会如何呢?,输入数据的格式控制,例,4.4,123a,a = 123, b = -858993460,#include 问题9:如果用户输入的,#,include,main(),int,a, b;,scanf(%d %d, ,printf(a = %d, b = %dn, a, b);,问题,10,:如果程序第,5,行语句修改为,.,,那么结果又会如何呢?,输入数据的格式控制,例,4.4,a, b,#include 问题10:如果程序第5,#,include,main(),int,data1, data2;,char,op;,printf(Please enter the expression,data1 + data2n);,scanf(%d%c%d,printf(%d%c%d = %dn,data1, op, data2, data1+data2);,Please enter the expression data1 + data2,第,1,次测试,12 + 3,12 4199288 = 4199300,C,格式符的问题及解决,例,4.5,#include Please enter,#,include,main(),int,data1, data2;,char,op;,printf(Please enter the expression,data1 + data2n);,scanf(%d%c%d,printf(%d%c%d = %dn,data1, op, data2, data1+data2);,Please enter the expression data1 + data2,第,2,次测试,12 3,12 3 = 15,C,格式符的问题及解决,例,4.5,#include Please enter,#,include,main(),int,data1, data2;,char,op;,printf(Please enter the expression,data1 + data2n);,scanf(%d%c%d,printf(%d%c%d = %dn,data1, op, data2, data1+data2);,Please enter the expression data1 + data2,第,3,次测试,12+3,12+3 = 15,C,格式符的问题及解决,例,4.5,#include Please enter,#,include,main(),int,a;,char,b;,float,c;,printf(Please input an integer:);,scanf(%d, ,printf(integer: %dn, a);,printf(Please input a character:);,scanf(%c, ,printf(character: %cn, b);,printf(Please input a float number:);,scanf(%f, ,printf(float: %fn, c);,Please input an integer:,希望得到的运行结果,12,Please input an character,:,a,Please input a float number:,3.5,integer:12,character,:a,float number:3.500000,C,格式符的问题及解决,例,4.6,#include Please input,#,include,main(),int,a;,char,b;,float,c;,printf(Please input an integer:);,scanf(%d, ,printf(integer: %dn, a);,printf(Please input a character:);,scanf(%c, ,printf(character: %cn, b);,printf(Please input a float number:);,scanf(%f, ,printf(float: %fn, c);,Please input an integer:,结果好像很奇怪呀!,12,Please input an character,:,character:,Please input a float number:,3.5,integer:12,float number:3.500000,C,格式符的问题及解决,例,4.6,#include Please input,#,include,main(),int,a;,char,b;,float,c;,printf(Please input an integer:);,scanf(%d, ,printf(integer: %dn, a);,printf(Please input a character:);,getchar();,/*,将存于缓冲区中的回车字符读入,避免被后面的变量作为有效字符读入*,/,scanf(%,c, ,printf(character: %cn, b);,printf(Please input a float number:);,scanf(%f, ,printf(float: %fn, c);,Please input an integer:,程序修改后得到的运行结果,12,Please input an character,:,a,Please input a float number:,3.5,integer:12,character,:a,float number:3.500000,C,格式符的问题及解决,例,4.6,#include Please input,#,include,main(),int,a;,char,b;,float,c;,printf(Please input an integer:);,scanf(%d, ,printf(integer: %dn, a);,printf(Please input a character:);,scanf,(,“,%c,”,/*,第,2,种解决方案,:,在,%c,前加一个空格,*/,printf(character: %cn, b);,printf(Please input a float number:);,scanf(%f, ,printf(float: %fn, c);,C,格式符的问题及解决,例,4.6,使用空白字符(空格属于空白字符)会使,scanf(),函数在读操作中略去输入中的一个或多个空白字符,#include C格式符的问题及解决例,#,include,main(),int,data1, data2;,char,op;,printf(Please enter the expression,data1 + data2n);,scanf(%d,%c,%d,printf(%d%c%d = %dn,data1, op, data2, data1+data2);,12+3,12 + 3,12,+,3,再回头来看例,4.5,如何以任意分隔符输入加法算式?,#include 12+312 + 3,格式输入函数常见错误,scanf(,%d,%f,n,scanf(,%d,%f,a,b,);,scanf(,%7,.2f,几点忠告,不要拘泥于细节,不要死记硬背,在使用中慢慢掌握,注意!,格式输入函数常见错误scanf(%d,%fn,&a,&,Questions and answers,Questions and answers,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!