资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2.7 C,语言数据的输出,C,语言本身没有提供用于输入或输出数据的语句,所有需要进行输入或输出数据的操作都是通过调用标准,库函数,(由系统提供)来实现的。,所谓输入输出是以,计算机为主体,而言的。,本节介绍的是向标准输出设备,(显示器),输出数据的语句。,在语言中,所有数据的输入输出都是由库函数完成的。因此都是,函数语句,。,一、数据输入输出的概念,在使用语言库函数时,要用预编译命令,#include,将有关“头文件”包括到源文件中。,使用标准输入输出库函数时要用到“,stdio.h,”,文件,因此源文件开头应有以下预编译命令:,#include,或,#include”,stdio.h,”,st,dio,是,standard,i,nput&,o,utupt,的意思。,考虑到,printf,和,scanf,函数使用频繁,系统允许在使用这两个函数时可不加,#include,或,#include”,stdio.h,”,二、,字符输出函数,-,putchar,函数,putchar,函数是字符输出函数,其功能是在显示器上输出单个字符。,其一般形式为:,putchar,(,参数,);,使用本函数前必须要用文件包含命令:,#include,或,#include“,stdio.h,”,putchar,的函数值为它所输出字符的,ASCII,码值,参数:,整型常量(,0127,),整型变量,int,x,;,x=12,;,字符变量,char,ch,;,ch,=c,字符常量,a,(用单引号引起来的单个普通字符或者转义字符),【,例,1】,输出单个字符,main(),int,x=65;,putchar(x,);,putchar(x41);,putchar(A,);,putchar(65);,putchar(n,);,对控制字符则执行控制功能,不在屏幕上显示。,变量定义,参数,为整型变量,参数为字符常量,参数为字符常量,参数为整型常量,参数为字符常量,,转义字符,【,例,2】,输出单个字符,#include,main(),char a=,B,b,=,o,c,=k;,putchar(a,);,putchar(b,);,putchar(b,);,putchar(c,);,putchar(t,);,putchar(a);putchar(b,);,putchar(n,);,putchar(b);putchar(c,);,练习,请使用,putchar,函数编写完整的程序在屏幕上输出如下的字符形式:,A (,要求用整型变量输出,),B (,要求用整型常量输出,),CDE (,要求用字符常量输出,),F (,要求用字符变量量输出,),三、格式化输出函数,-,printf,printf,函数称为格式输出函数,它可以按用户指定的格式,把指定的数据显示到显示器屏幕上。,作为特例,printf,可以不用加头文件,stdio.h,。,printf,有两种用法。,1,、格式一,printf,(,“想输出的任何字符都可以写到这,”,),;,当然你想输出的字符序列可以包括,转义字符,,但不能包括,%d,、,%f,、,%c,等。,printf,(“I am a student!”);,printf,(“,a+b,=c”);,练习,要求用,printf,函数编写完整的程序输出下面,的内容:,I Know you,!,me too,!,123456789,1 2 3 4 5 6 7 8 9,2,、格式二,printf,(,“你想输出的字符串,但其中要有,%d/%f/%c ”,输出列表),;,printf,(,“格式输出字符串”,输出列表),;,int,a=2,b=3,c,;,c=,a+b,;,printf,(“,a+b,=%d,”,,,c,);,练习,要求用,printf,编写完整的程序输出下面的内容:,a=3,b=21,a+b,=24,(提示:首先定义三个变量,然后给变量赋值),四、,printf,输出整型数据,%d,表示把数据按十进制整型输出;,%ld,表示把数据按十进制长整型输出;,%o,表示把数据按八进制整型输出;,%x,表示把数据按十六进制整型输出;,%u,表示把数据按无符号整型输出。,注意:,除了,%d(%ld),,其余的格式都将数据作为无符号数输出。,printf(%ld,100000L);,正确,printf(%d,100000L);,结果,-31072,#include,stdio.h,void main(),int,x,y,z,;,x=129,y=0127,z=0 x128;,printf(%d,%d,%dn,x,y,z,);,printf(%o,%o,%on,x,y,z,);,printf(%x,%x,%xn,x,y,z,);,运行结果:,129,87,296,201,127,450,81,57,128,使用域宽和对齐方式来控制显示格式,在,%,和“,d”,(或者,ld,)之间加整数数字,表示数据显示的域宽,;,在,%,后面加符号“,-”,,数据显示时左对齐,没有符号“,-”,,数据显示时右对齐。,例如:,printf(%-6d%-6d%-6dn,x,y,z);,main,(),int,a=2,b=3,c,;,c=,a+b,;,printf,(“,a+b,=%6d n,”,,,c,);,printf,(“,a+b,=%-6d n,”,,,c,);,a+b,=5,a+b,=5,练习,请使用,printf,函数编写完整的程序,输出下面的内容:,67810,6781,678123,678123,7812,五、,printf,输出实型数据,%f,输出普通的浮点数,%e,输出用科学记数法表示的浮点数,double a=2.3490,;,printf,(“,a=%le,”,,,a,);,double a=2.3,b=23.4,;,float c=12.3,d=3.4;,printf,(“,a=%le,b=%lf,c=%,e,d,=%f,”,,,a,b,c,d,);,输出双精度(,double,)类型时,还需要在字符,f,或者,e,前加上小写字母,l,。,输出浮点数时控制输出域宽和有效位,在,%,与,f,(或,e,)之间加上两个数字并在两个数字之间加一个,句点“,.”,。,例如,,%10.3f,表示输出格式是域宽,10,,有效位,3,注意:域宽是总的宽度,它包括三部分:,整数部分、小数点、小数部分,,句点,后面的整数是指小数点后面要保留的位数。,#include,stdio.h,“,main(),float x;,double y;,x=12.3456789;y=987654.321098;,printf(n%e,%le,x,y,);,printf(n%f,%lf,x,y,);,printf(n%.3f,%.3lf,x,y);,printf(n%14.3f,%14.3lf,x,y);,printf(n%-14.3f,%-14.3lf,x,y);,printf(n%8.3f,%8.3lf,x,y);,printf(n%14f,%14lf,x,y);,练习,请使用,printf,函数编写完整的程序,输出下面的内容:,678.1234567,678.123456,678.12345,678.123456,678.12,使用,%c,输出单个字符,#include ,stdio.h,void main(),char c=H;,char d=I;,char e=!;,printf(%c%c%cn,c,d,e,);,运行结果为:,HI!,六、,printf,输出字符型数据,标准,ASCII,编码是把每个字符和与,0127,的数值联系起来,用,7,位二进制表示,再将最高位充,0,,就是一个字节了。,因此,字符可以跟整数进行转化和运算,字符与整数的转化,main(),char,a,b,c,;,a=a;,b=A;,c=a-b;,printf(“%d,%c”,c,c,),练习,请使用,printf,函数编写完整的程序在屏幕上输出如下的字符形式:,A (,要求用整型变量输出,),B (,要求用整型常量输出,),CDE (,要求用字符常量输出,),F (,要求用字符变量量输出,),七、,printf,输出字符串数据,有两种方法:,一种是直接输出:,printf(“how,are you!”);,另一种是使用,%s,转换说明符:,printf(“%s”,“how,are you!”);,
展开阅读全文