《C语言的格式化输入输出课件》由会员分享,可在线阅读,更多相关《C语言的格式化输入输出课件(30页珍藏版)》请在金锄头文库上搜索。
1、数据输入输出C语言的格式化输入输出2.1 如何在终端设备上实现输入输出2.2 标准输入输出函数及其引用2.3 Turbo C上机步骤C语言的格式化输入输出如何在终端设备上实现输入输出所谓输入输出是以计算机为主体而言的;操作系统分别将键盘和显示器定义为标准输入、输出设备。语言的输入输出操作是由函数来实现的;这些函数放在标准I/O函数库中。标准I/O函数库中的一些公用信息事先放在头文件stdio.h中。C语言的格式化输入输出在程序开始用命令行#include 把要使用的信息包含到用户程序中。 语言的函数库中有一批“标准输入输出函数”,它们以标准的输入输出设备为输入输出对象。由于printf和sca
2、nf函数使用频繁,系统允许使用时不加#include命令。C语言的格式化输入输出标准输入输出函数及其引用字符输入输出函数getchar( )/putchar( )格式化输入输出函数printf( )/scanf( )C语言的格式化输入输出字符输入输出函数getchar( )/putchar( )getchar( )和putchar( )是一对用于单个字符输入输出的标准函数。一、putchar( )函数功能:在终端的当前位置输出一个字符格式:putchar(字符变量) 或putchar(输出字符)C语言的格式化输入输出#include main( ) char a,b; a=B; b=o; pu
3、tchar(a); putchar(b); putchar(y);例:Eg201.c运行结果为:BoyC语言的格式化输入输出putchar( )也可以输出控制字符,如putchar(n)。可以将上例的最后一行改为:putchar(a); putchar(n);putchar(b); putchar(n);putchar(y); putchar(n);也可以输出其它转义字符,如:putchar(); putchar();C语言的格式化输入输出二、getchar( )函数功能:从终端输入一个字符说明:无参数;程序暂停运行,等待从键盘上输入一个字符,再回车;通过赋值语句将函数的返回值送到某一字符型变
4、量中。例如: ch=getchar( )C语言的格式化输入输出#include main( ) char ch; ch=getchar( ); putchar(ch);例:Eg202.cputchar(getchar( );C语言的格式化输入输出、getchar( )函数只接收一个字符,而不是一个字符串;、使用putchar、getchar函数需要加上命令行#include 说明:、只有在按“回车”键之后输入才生效;C语言的格式化输入输出格式化输入输出函数printf( )/scanf( )C语言的格式化输入输出一、一、printf( )函数函数功能:向终端输出若干个任意指定类型的数据格式:p
5、rintf(格式控制,参数表列)说明:、由“格式控制”部分控制后面的参数按确定的输出格式在屏幕上输出具体的内容,因此必不可少;、参数表列可以由0到多个具体参数组成,其中的参数可以是常量、变量或表达式,也可以没有任何参数(0参数)。如:printf(This is a C program!)C语言的格式化输入输出格式控制可分为三种情况:1、不含有“%”的普通字符串。此时第二部分将没有参数,其结果是将字符串原样显示。printf(This is a C program!n);printf(Hello,World!n);语言中规定了一组以反斜杠()开头后面跟一个字符的符号,称为“转义字符”。意思是将
6、反斜杠后面的字符转换成另外的意义。C语言的格式化输入输出转义字符转义字符含义含义ASCIIASCII值值00表示字符串结束表示字符串结束0 0nn换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头1010t t水平制表(跳到下一个水平制表(跳到下一个TabTab的位置)的位置)9 9vv垂直制表垂直制表1111bb左退一格,将当前位置移到下一行开头左退一格,将当前位置移到下一行开头8 8r r回车,将当前位置移到本行开头回车,将当前位置移到本行开头1313f f换页,将当前位置移到下页开头换页,将当前位置移到下页开头1212aa响铃响铃7 7 单引号单引号3939双引号双引号3434
7、 反斜杠反斜杠“”“”9292dddddd1 1到到3 3位八进制数代表的字符位八进制数代表的字符xhhxhh1 1到到2 2位十六进制所代表的字符位十六进制所代表的字符C语言的格式化输入输出例如:Eg204.cprintf(Hello,computer!n);printf(101,012,044);printf(x31,x10,x41);Eg203.cprintf(NotNametSextScoretn);C语言的格式化输入输出2 2、带有格式控制符的的格式输出、带有格式控制符的的格式输出格式控制符由“%”和跟随其后的一个字符构成。如%d、%f、%c、%s等。格式字符格式字符说明说明d d以
8、带符号的十进制形式输出整数以带符号的十进制形式输出整数( (正数不输出符号正数不输出符号) )o o以八进制无符号形式输出整数以八进制无符号形式输出整数( (不输出前导符不输出前导符0)0)x x以十六进制无符号形式输出整数以十六进制无符号形式输出整数( (不输出前导符不输出前导符0x)0x)u u以无符号十进制形式输出整数以无符号十进制形式输出整数c c以字符形式输出,只输出一个字符以字符形式输出,只输出一个字符s s输出字符串输出字符串f f以小数形式输出单、双精度数,隐含输出以小数形式输出单、双精度数,隐含输出6 6位小数位小数e e以标准指数形式输出单、双精度数,小数位数为以标准指数形
9、式输出单、双精度数,小数位数为6 6位位g g选用选用%f%f或或%e%e格式中输出宽度较短的一种格式,不输格式中输出宽度较短的一种格式,不输出无意义的出无意义的0 0C语言的格式化输入输出在格式控制符中,%和后面跟随的单个字符之间又可以插入以下几种修饰符。字符字符说明说明字母字母l l用于长整型,可加在用于长整型,可加在d d、o o、x x、u u前面前面mm( (正整数正整数) )数据最小宽度数据最小宽度n n( (正整数正整数) )对实数,表示输出几位小数;对实数,表示输出几位小数;对字符串,表示截取的字符个数对字符串,表示截取的字符个数- -输出的数字或字符在域内向左靠输出的数字或字
10、符在域内向左靠注意:格式控制符的个数与后面的参数个数应相等,且前后位置要一一对应。C语言的格式化输入输出3 3、普通字符串与格式控制符混合使用格式控制符用后面相应位置的常量、变量或表达式的值代替,其余普通字符一律原样显示。Eg210.cEg211.c main( ) printf(2+3=%d, 2*3=%dn,2+3,2*3); 输出结果:2+3=5,2*3=6C语言的格式化输入输出二、二、scanf( )函数函数功能:等待用户从键盘上输入数据,然后按格式控制的要求对数据进行转换后送到相应的变量地址中去。格式:scanf(格式控制,地址表列)说明:、由“格式控制”部分控制输入的数据按确定的格
11、式送到相应变量的地址单元中;、“地址表列”由若干个地址组成,可以是变量的地址或字符串的首地址。scanf(%d%d%d,&a,&b,&c)scanf(%d%d%d, a, b, c)C语言的格式化输入输出格式字符格式字符说明说明d d用来输入带符号的十进制整数用来输入带符号的十进制整数o o用来输入无符号的八进制整数用来输入无符号的八进制整数x x用来输入无符号的十六进制整数用来输入无符号的十六进制整数c c用来输入单个字符用来输入单个字符s s用来输入字符串,将字符串送到一个字符数组中,用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符在输入时以非空白字符
12、开始,以第一个空白字符结束。字符串以串结束标志结束。字符串以串结束标志00作为最后一个字作为最后一个字符。符。f f用来输入实数,可以用小数形式或指数形式输入用来输入实数,可以用小数形式或指数形式输入e e与与f f作用相同,作用相同,e e与与f f可以相互替换可以相互替换格式控制符:以%开始,以一个格式字符结束。C语言的格式化输入输出 main( ) int a,b,c; scanf(%d%d%d,&a,&b,&c); printf(a=%d,b=%d,c=%dn,a,b,c); printf(a+b+c=%d,a+b+c); Eg212.c不含其它字符的格式控制部分,输入数据时,两个数据
13、之间以一个或多个空格、用Tab键或回车键分隔。C语言的格式化输入输出在%和格式字符之间可插入附加的格式说明符。字符字符说明说明l l用于输入长整型数据(可用用于输入长整型数据(可用%ld%ld、%lo%lo、%lx%lx)以及以及doubledouble型数据(用型数据(用%lf%lf或或%le%le)h h用于输入短整型数据(可用用于输入短整型数据(可用%hd%hd、%ho%ho、%hx%hx)mm( (正整数正整数) )域宽,指定输入数据所占宽度(列数)域宽,指定输入数据所占宽度(列数)* *表示本输入项在读入后不赋给相应的变量表示本输入项在读入后不赋给相应的变量C语言的格式化输入输出3
14、3 3 3、使用、使用、使用、使用scanf( )scanf( )scanf( )scanf( )时应注意的一些问题时应注意的一些问题时应注意的一些问题时应注意的一些问题、格式控制符中不带域宽,则以分隔符作字符串的结束,反之则按域宽进行截取。Eg213.c、eg214.c、eg215.c、附加说明符 * 表示跳过相应的输入数据。Eg216.c、不能企图用格式控制来规定输入数据的精度。scanf(%7.2f,&a)scanf(%f,&a)C语言的格式化输入输出、如果在“格式控制”的字符串中除格式控制符之外还有其它字符,则在输入时应输入相同的字符。 scanf(%d,%d,&a,&b) 12, 3
15、4 scanf(%d %d,&a,&b) 12 34Eg217.c scanf(%d:%d:%d,&a,&b,&c) 12:34:56、在用“%c”输入字符时,空格字符和转义字符也都作为有效字符输入。Eg218.cC语言的格式化输入输出、在输入数据时,遇以下情况之一认为一个数据输入结束:、遇到空格或按Tab键或回车键;、满足域宽,如%4d,输入4位即结束;、遇到非法字符。 scanf(%d%c%f,&a,&b,&c) 25P12I.35C语言的格式化输入输出字符串输入输出函数gets( )/puts( )gets( )和puts( )是两个专门用于字符串输入输出的函数,都可以带一个字符型数组名
16、或字符型指针变量作为函数参数。C语言的格式化输入输出一、一、puts( )函数函数作用:将一个字符串输出到终端格式:puts(字符数组名) #include main( ) char str20=China Beijing; puts(str); 输出结果为:China Beijingprintf(%s,str);C语言的格式化输入输出二、二、gets( )函数函数作用:从终端输入一个字符串到字符数组格式:gets(字符数组名) #include main( ) char str20; gets(str); puts(str); Eg219.cscanf(%s,str);?C语言的格式化输入输出注意:scanf( )函数在接收字符串时,以空格或回车符作为分隔符;而gets( )函数仅以回车符作为结束符。所以输入带空格的字符串时候必须用gets( )函数。C语言的格式化输入输出