c语言输入输出语句课件.ppt

上传人:牧羊曲112 文档编号:1804332 上传时间:2022-12-19 格式:PPT 页数:29 大小:346.50KB
返回 下载 相关 举报
c语言输入输出语句课件.ppt_第1页
第1页 / 共29页
c语言输入输出语句课件.ppt_第2页
第2页 / 共29页
c语言输入输出语句课件.ppt_第3页
第3页 / 共29页
c语言输入输出语句课件.ppt_第4页
第4页 / 共29页
c语言输入输出语句课件.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《c语言输入输出语句课件.ppt》由会员分享,可在线阅读,更多相关《c语言输入输出语句课件.ppt(29页珍藏版)》请在三一办公上搜索。

1、输入输出语句,在程序的运行过程中,往往需要由用户输入一些数据,这些数据经机器处理后要输出反馈给用户。通过数据的输入输出来实现人与计算机之间的交互,所以在程序设计中,输入输出语句是一类必不可少的重要语句。在C语言中,没有专门的输入输出语句,所有的输入输出操作都是通过对标准I/O库函数的调用实现。最常用的输入输出函数有scanf( )、printf( )、getchar( ) 、putchar ( )、gets()、puts() 。,4.1 putchar 函数,当我们要把字符一个一个输出时,可以用putchar 函数,它是一个专门输出字符的函数。其一般形式是: 该函数的功能是输出“字符表达式”的

2、值。 例如:putchar(A);输出字符A; putchar(A+1); 输出字符B; 在使用标准I/O库函数时,要用预编译命令“#inciude”将“stdio.h”文件包含到用户源文件中,即: stdio.h是standard input&output的缩写,它包含了与标准I/O库函数有关的定义和函数声明(具体见编译预处理命令章节)。在需要使用标准I/O库中的函数时,应在程序前使用上述预编译命令。,putchar (),#include ,4.2 printf 函数,4.2.1 printf 函数的格式 printf函数的一般格式为: “输出表列”是需要输出的一些数据,可以是表达。例如:

3、 printf(%d %d,a+2,b); “格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它用于控制输出数据的格式。,printf(,),“格式控制”包括两种信息:(1)格式说明,由“%”和格式说明字符组成,如%d、%f。 表4.1 printf格式符,(2)普通字符,即需要原样输出的字符。 例如:printf(a=%d b=%d,a,b); 在上面双引号中的字符除了“%d”和“%d”以外,还有非格式说明的普通字符(“a=”和“b=”),它们按原样输出。计算机在执行该语句时,首先输出格式控制串中的“a=”,然后碰到一个格式说明“%d”,就从输出表列中取第一个教据项a,按格式说明

4、输出该数据项值,然后原样输出格式控制串中的“b=”,又碰到第二个格式说明“%d”,取输出表列中的第二个数据项b,按格式说明输出其值。,4.2.2 格式说明字符, d格式符 用来控制整型数按十进制形式输出。 %d,按整型数据的实际长度输出。 %md,m为指定的输出字段的宽度。如果数据的位数(包括负号)小于m,则右对齐左端补以空格,若大于m,则按实际位数输出。 %-md,m为指定的输出字段的宽度。如果数据的位数小于m,则左对齐补以空格,若大于m,则按实际位数输出 %ld,输出长整型数据。, o格式符以八进制数形式输出整型数据。数值不带符号,即将符号也一起作为八进制数的一部分输出。对长整数(long

5、型)可以用“%lo”格式输出。可以指定字段宽度,如“%8o”。 o格式符一般用于输出正整数或无符号类型的数据。, x格式符以16进制形式输出整型数据。不会出现负的十六进制数。可以用“%x”输出长整型数。可以指定输出字段的宽度,如“%12x”。x格式符一般用于输出正整数或无符号类型的数据。, u格式符用来输出unsigned数据,即无符号数,以十进制形式输出。一个有符号整型数(int型)也可以用%u格式输出,此时把符号位当作数值看待。一个unsigned型数据也可以用%d格式输出,按相互赋值的规则处理。unsigned数据也可用. %o或%x格式输出。, c格式符用来输出一个字符。如: char

6、 c=a; printf(%c,c); 输出字符a,注意“%c”的c是格式符,逗号右边的C是变量名,不要搞混。一个整数,只要它的值在0255范围内,也可以用字符形式输,在输出前将该整数转换成换成相应的ASCII字符;反之,一个字符数据也可以用整型数形式输出,但输出的是其ASCII码值。, s格式符 %s,用来输出一个字符串(不包括双引号)。 %ms,输出的字符串占m列,若字符串长度小于m,则“右对齐”,左边补空格。如字符本身长度大于m,则突破m的限制,将字符串全部输出。 %-ms,若字符串长度小于m,则在m列范围内,“左对齐”,右边补空格。如字符本身长度大于m,则突破m的限制,将字符串全部输出

7、。 %m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左边补空格。 %-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右面补空格。如果m省略或nm,则m自动取n值,即保证n个字符正常输出。, f格式符用来输出实型数(包括单、双精度数),以小数形式输出。%f,不指定字段宽度,由系统自动指定,使整数部分全 部如数输出,并输入6位小数。应当注意,并非全部数字都是有效数字,单精度数的有效位数一般为7位。也就是说单精度数用%f格式输出,只有前7位是有效的。双精度数的有效位数一般为16位,双精度数用%f格式输出时,只有前16位有效。%m.nf,指定输出的数据共占

8、m列,其中有n位小数。如果数值长度(包括小数点和负号)小于m,则采用“右对齐”输出,左端补空格。如果m省略则整数部分按实际宽度如数输出。%-m.nf与%m.nf基本相同,只是使输出的数值“左对齐”,右端补空格。, e格式符以指数形式输出实数。%e,不指定输出所占的宽度和数字部分小数位数,由系统自动指定给出6位小数,指数部分占5位(如e+002),其中“e”占一位,指数符号占一位,指数占3位。数值按标准化指数形式输出(即小数点前必须有而且只有一位非零数字)。%m.ne和%-m.ne,m、n及“-”字符含义与之前相同。此处n为指数的数字部分(又称尾数)的小数位数。如省略n,则n=6。如省略m,则自

9、动使m等于数据应有的长度,即m=7+n。, g格式符 用来输出实型数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。 例: 若f=123.468,则: printf(”%f,%e,%g”,f,f,f); 输出如下: 123.468000,1.234680e+002,123.468 用%f格式输出占10列,用%e格式输出占13列,用%g格式时,自动从前面两种格式中选择短者(今为%f格式为短),故选择按%f格式输出,且小数位中的最后三位为无意义的0,不输出。%g格式用得比较少。,在使用函数printf函数时,还有几点要说明: 格式字符要用小写字母,如%d

10、不能写成%D。 可以在printf函数中的“格式控制”字符串内包含转义字符,如n、t、b 、r、f、377等,它们将原样输出。 上面介绍的d、o、x、u、c、s、f、e、g等字符,如不是用在“%”后面就作为普通字符,原样输出。 如果想输出字符“%”,可以在“格式控制”字符串中用连续两个%表示,或者使用转义字符“45”。 不同的系统在格式输出时,输出结果可能会有一些小的差别,例如用%e格式符输出实数时,有些系统输出的指数部分为4位(如e+02)而不是5位(如e+002),前面数字的小数部分为5位而不是6位等等。,4.3 getchar 函数,此函数的作用是从键盘输入一个字符,并把这个字符作为函数

11、的返回值。getchar函数没有参数,其一般形式为:getchar()。例4.8 请注意,getchar()只能接受一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量。也可以不赋给任何变量。也可以作为表达式的一部分 在一个函数中调用getchar函数,应该在函数的前面(或本文件开头)用:#include,#includemain()char c;c=getchar();putchar(c);,在运行时,如果从键盘输入字符a;a (输入a后,按回车键字符才 送到内存)a (输出变量c的值a),4.4 scanf 函数,4.4.1 一般形式 scanf函数的一般形式是: 其中,“

12、地址表列”由若干个地址组成的表列,是可以接受数据的变量的地址。“格式控制”的含义同printf函数,但scanf中的“格式控制”是控制输入的数据。例4.9 main() int a,b,c; scanf(“%d%d%d”, ,scanf(),4.4.2 格式说明,和printf函数中的格式说明相似,scanf中的格式说明也以%开始,以一个格式字符结束,中间可以插入附加格式说明字符(修饰符)。 如表4.3和4.4所示。,表4.3 scanf格式字符,表4.4 scanf附加的格式说明字符,说明: (1)C语言在scanf中不使用%u格式符,对unsigned型数据,以%d、%o或%x格式输入。

13、(2)可以指定输入数据所占列数,系统自动按它截取所需数据。 (3)%后的附加说明符”*”,用来表示跳过它相应的数据。 (4)输入数据时不能规定精度。,4.4.3 scanf函数的执行中应注意的问题,scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。如果在“格式控制”字符串中除了格式说明外还有其它字符,则在输入数据时应输入与这些字符相同的字符,即原样输入。在用“% c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。在输入数据时,遇到以下情况时该数据认为结束; 遇空格,或回车键或跳格键(tab键)。 遇宽度结束时,如“%3d”,只取3列。 遇非法输入。,4.5 gets

14、和puts函数,gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。 其调用格式为:gets(s); 其中s为字符串变量(字符串数组名或字符串指针)。 gets(s)函数与scanf(%s,&s)相似,但不完全相同,使用scanf(%s,&s)函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到回车为止。,uts()函数用来向标准输出设备(屏幕)写字符串并换行。其调用格式为:puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。puts()函数的

15、作用与语printf(%sn,s)相同,4.6 程序举例,例4.10 输入三角形的变长,求三角形面积。为简单起见,设输入的三边长a,b,c能构成三角形。程序如下: #include main() float a,b,c,s,area; scanf(%f%f%f, ,例4.11 从键盘输入一个大写字母,要求转换成小写字母输入。程序如下: #include main() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2); ,字符数组中常用的处理函数a、strlen()求字符串的长度:它是st

16、ring length的缩写。函数的原型为strlen(char);b、strcpy()复制字符串:其函数的原型为strcpy(char ,char );它是string copy的缩写。它的作用是将第二个字符串复制到第一个字符串中。c、strcat()连接字符串:其函数的原型为strcat(char ,char );它是string catenate的缩写。作用就是将第二个字符串连接到第一个字符串中。d、strcmp()比较字符串大小:其函数原型是strcmp(char ,char )。是string compare的缩写。作用就是比较两个字符串。返回值为整形。0表示相等。大于0表示第一个字

17、符串大于第二个字符串。小于0表示第一个字符串小于第二个字符串。,e、strrev()反转字符串:其函数原型为strrev (char )。起作用就是将一串字符串反转过来。即逆序。f、isalpha():其函数原型为isalpha(char s)。作用就是判断一个字符是否是字母即是否属于:A-Z,a-z;g、isupper():其函数原型为isupper(char s)。作用就是判断一个字符是否为一个大写字母,A-Z。 h、islower ():其函数原型为isupper(char s)。作用就是判断一个字符是否为一个小写字母,a-z。,练习题(hhoj) 1516 1519 1445 1521 1524 1845 3321 3584 3612 3613 4825,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号