《C语言PPT课件第四章格式化输入输出.ppt》由会员分享,可在线阅读,更多相关《C语言PPT课件第四章格式化输入输出.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章第四章第四章 格式化的输出与输入格式化的输出与输入格式化的输出与输入格式化的输出与输入4-1 printf()4-1 printf()函数函数函数函数格式化的输出函数格式化的输出函数格式化的输出函数格式化的输出函数一、功能:一、功能:一、功能:一、功能:向输出设备输出若干个任意类型的数据。向输出设备输出若干个任意类型的数据。向输出设备输出若干个任意类型的数据。向输出设备输出若干个任意类型的数据。二、格式:二、格式:二、格式:二、格式:printf(“printf(“格式字符串格式字符串格式字符串格式字符串”,参数,参数,参数,参数1 1,参数,参数,参数,参数2,);2,);“格式
2、字符串格式字符串格式字符串格式字符串”必须以双引号包围,内容为要输出的字必须以双引号包围,内容为要输出的字必须以双引号包围,内容为要输出的字必须以双引号包围,内容为要输出的字符符符符 串和参数的格式;串和参数的格式;串和参数的格式;串和参数的格式;“参数参数参数参数1”1”,“参数参数参数参数2”2”,可以是常量可以是常量可以是常量可以是常量,变量变量变量变量,或表达式或表达式或表达式或表达式;例:例:例:例:printf(I have%d dogs and%d cats,a ,b );printf(I have%d dogs and%d cats,a ,b );/*I have 2 dogs
3、 and 4 cats.*/*I have 2 dogs and 4 cats.*/三、三、三、三、printf()printf()函数的使用函数的使用函数的使用函数的使用1 1、直接输出字符串、直接输出字符串、直接输出字符串、直接输出字符串 printf(have a nice day!);printf(have a nice day!);printf(hello,world!);printf(hello,world!);2 2、转义字符的使用、转义字符的使用、转义字符的使用、转义字符的使用 例例例例:(1)printf(“my name is a Tom!”);(1)printf(“my
4、name is a Tom!”);(2)printf(“This bbis a book!”);(2)printf(“This bbis a book!”);(3)printf(“NametAddresstTeln”);(3)printf(“NametAddresstTeln”);(4)printf(“The number is 101”);(4)printf(“The number is 101”);(5)printf(“The number is x47n”);(5)printf(“The number is x47n”);(6)printf(“where do you want to g
5、o?”);(6)printf(“where do you want to go?”);3 3、输出表达式的值:、输出表达式的值:、输出表达式的值:、输出表达式的值:例:例:例:例:printf(“a*a+b*b=%dn”,a*a+b*b);printf(“a*a+b*b=%dn”,a*a+b*b);4 4、输入输出格式字符串的使用、输入输出格式字符串的使用、输入输出格式字符串的使用、输入输出格式字符串的使用 (1)(1)d d格式格式格式格式:用来输出十进制整数。:用来输出十进制整数。:用来输出十进制整数。:用来输出十进制整数。%d%d:按整型数据的实际长度输出;按整型数据的实际长度输出;按整
6、型数据的实际长度输出;按整型数据的实际长度输出;%md%md:mm指定输出字段的宽度,如果数据的位数小于指定输出字段的宽度,如果数据的位数小于指定输出字段的宽度,如果数据的位数小于指定输出字段的宽度,如果数据的位数小于 m m,则左端补空格;若大于,则左端补空格;若大于,则左端补空格;若大于,则左端补空格;若大于mm,则按实际位数输出;,则按实际位数输出;,则按实际位数输出;,则按实际位数输出;例:例:例:例:a=1102a=1102;b=220111 b=220111;printf(“%5d,%5d”,a,b);printf(“%5d,%5d”,a,b);输出:输出:输出:输出:_ _ 11
7、02 1102,220111220111%ld%ld:输出长整型数据。输出长整型数据。输出长整型数据。输出长整型数据。例:例:例:例:long a=135790;printf(“%ld”,a);long a=135790;printf(“%ld”,a);(2)(2)o o格式格式格式格式:以八进制整数形式输出,不带符号;即不会输出:以八进制整数形式输出,不带符号;即不会输出:以八进制整数形式输出,不带符号;即不会输出:以八进制整数形式输出,不带符号;即不会输出带负号的八进制数。带负号的八进制数。带负号的八进制数。带负号的八进制数。例:例:例:例:int a=-1;printf(%d,%o,a,
8、a);int a=-1;printf(%d,%o,a,a);输出:输出:输出:输出:-1-1,177777177777(3)(3)x x格式格式格式格式:以十六进制整数形式输出,不带符号;即不会输出:以十六进制整数形式输出,不带符号;即不会输出:以十六进制整数形式输出,不带符号;即不会输出:以十六进制整数形式输出,不带符号;即不会输出带负号的十六进制数。带负号的十六进制数。带负号的十六进制数。带负号的十六进制数。例:例:例:例:int a=-1;printf(%d,%o,%x,a,a,a);int a=-1;printf(%d,%o,%x,a,a,a);输出:输出:输出:输出:-1-1,177
9、777,ffff177777,ffff(4)(4)u u格式格式格式格式:以十进制形式输出无符号数。:以十进制形式输出无符号数。:以十进制形式输出无符号数。:以十进制形式输出无符号数。例:例:例:例:unsigned int a=65535;int b=-2;unsigned int a=65535;int b=-2;printf(%d,%o,%x,%un,a,a,a,a);printf(%d,%o,%x,%un,a,a,a,a);printf(%d,%o,%x,%un,b,b,b,b);printf(%d,%o,%x,%un,b,b,b,b);输出:输出:输出:输出:-1-1,1777771
10、77777,ffffffff,6553565535 -2 -2,177776177776,fffefffe,65534 65534(5)(5)s s格式格式格式格式:用来输出一个字符串。:用来输出一个字符串。:用来输出一个字符串。:用来输出一个字符串。%ms%ms:输出的字符串占:输出的字符串占:输出的字符串占:输出的字符串占mm列。若字符串本身长度大于列。若字符串本身长度大于列。若字符串本身长度大于列。若字符串本身长度大于mm则则则则原样输出,否则左补空格;原样输出,否则左补空格;原样输出,否则左补空格;原样输出,否则左补空格;%-ms%-ms:同上,但若字符串本身长度小于:同上,但若字符串
11、本身长度小于:同上,但若字符串本身长度小于:同上,但若字符串本身长度小于mm,则字符串向左,则字符串向左,则字符串向左,则字符串向左靠,右补空格;靠,右补空格;靠,右补空格;靠,右补空格;%m.ns%m.ns:输出占:输出占:输出占:输出占mm列,但只取字符串中左端列,但只取字符串中左端列,但只取字符串中左端列,但只取字符串中左端n n个字符,输出个字符,输出个字符,输出个字符,输出靠右,左补空格;靠右,左补空格;靠右,左补空格;靠右,左补空格;%-m.ns%-m.ns:同上,但输出靠左,右补空格。若:同上,但输出靠左,右补空格。若:同上,但输出靠左,右补空格。若:同上,但输出靠左,右补空格。
12、若nmnm,则保证,则保证,则保证,则保证n n个字符正常输出。个字符正常输出。个字符正常输出。个字符正常输出。例:例:例:例:printf(%3s,%7.2s,%.4s,%-printf(%3s,%7.2s,%.4s,%-5.3sn,china,china,china,china);5.3sn,china,china,china,china);输出:输出:输出:输出:china,china,_ _ _ _ _ch,chin,chi_ _ _ _ _ _ch,chin,chi_ _(6)(6)f f格式格式格式格式:以小数形式输出实数。:以小数形式输出实数。:以小数形式输出实数。:以小数形式输
13、出实数。%f%f:整数部分如数输出,并输出:整数部分如数输出,并输出:整数部分如数输出,并输出:整数部分如数输出,并输出6 6位小数;位小数;位小数;位小数;%m.nf%m.nf:输出共占:输出共占:输出共占:输出共占mm列列列列(包括小数点包括小数点包括小数点包括小数点),其中有,其中有,其中有,其中有n n位小数,如果位小数,如果位小数,如果位小数,如果数值长度小于数值长度小于数值长度小于数值长度小于mm,则左端补空格;,则左端补空格;,则左端补空格;,则左端补空格;%-m.nf%-m.nf:同上,只是输出向左靠,右补空格。:同上,只是输出向左靠,右补空格。:同上,只是输出向左靠,右补空格
14、。:同上,只是输出向左靠,右补空格。在小数点部分若指定显示的位数比实际位数小,会将小数部分在小数点部分若指定显示的位数比实际位数小,会将小数部分在小数点部分若指定显示的位数比实际位数小,会将小数部分在小数点部分若指定显示的位数比实际位数小,会将小数部分四舍五入至指定位数。四舍五入至指定位数。四舍五入至指定位数。四舍五入至指定位数。例:例:例:例:float f=123.456;float f=123.456;printf(%f,%10f,%10.2f,%.2f,%-10.2fn,f,f,f,f,f);printf(%f,%10f,%10.2f,%.2f,%-10.2fn,f,f,f,f,f);
15、输出:输出:输出:输出:123.456000,123.456000,123.456000,123.456000,_ _ _ _123.46,123.46,123.46_ _ _ _ _ _ _123.46,123.46,123.46_ _ _ _四、不同类型的输出四、不同类型的输出四、不同类型的输出四、不同类型的输出例例例例1 1:int i=42;printf(%o,%d,%x,%cn,i,i,i,i);int i=42;printf(%o,%d,%x,%cn,i,i,i,i);输出:输出:输出:输出:52,42,2a,*52,42,2a,*例例例例2 2:int a=15;printf(%
16、d,%f,%en,a,a,a);int a=15;printf(%d,%f,%en,a,a,a);输出:输出:输出:输出:15,0.000000,1.910519e-29715,0.000000,1.910519e-297例例例例3 3:int a=15;printf(%d,%f,%en,a,(float)a,(double)a);int a=15;printf(%d,%f,%en,a,(float)a,(double)a);输出:输出:输出:输出:1515,15.000000,1.500000e+00115.000000,1.500000e+001强调:整型数据不能以强调:整型数据不能以强调
17、:整型数据不能以强调:整型数据不能以%f%f或或或或%e%e的格式输出。的格式输出。的格式输出。的格式输出。4-2 scanf()4-2 scanf()函数函数函数函数格式化的输入函数格式化的输入函数格式化的输入函数格式化的输入函数一、功能:一、功能:一、功能:一、功能:通过输入设备输入若干个任意类型的数据。通过输入设备输入若干个任意类型的数据。通过输入设备输入若干个任意类型的数据。通过输入设备输入若干个任意类型的数据。二、格式:二、格式:二、格式:二、格式:scanf(“scanf(“格式字符串格式字符串格式字符串格式字符串”,&变量变量变量变量1 1,&变量变量变量变量2,);2,);例:
18、例:例:例:scanf(%d%d%d,&a,&b,&c);scanf(%d%d%d,&a,&b,&c);注意:输入数据的类型、顺序、数据间的间隔都要严格按照注意:输入数据的类型、顺序、数据间的间隔都要严格按照注意:输入数据的类型、顺序、数据间的间隔都要严格按照注意:输入数据的类型、顺序、数据间的间隔都要严格按照格式字符串和变量列表,与之一一对应,如果缺省了数据间格式字符串和变量列表,与之一一对应,如果缺省了数据间格式字符串和变量列表,与之一一对应,如果缺省了数据间格式字符串和变量列表,与之一一对应,如果缺省了数据间隔,则数值数据以空格、回车和隔,则数值数据以空格、回车和隔,则数值数据以空格、回
19、车和隔,则数值数据以空格、回车和TabTab键来间隔,而字符型数据键来间隔,而字符型数据键来间隔,而字符型数据键来间隔,而字符型数据间则不留空格。以下为合法输入:间则不留空格。以下为合法输入:间则不留空格。以下为合法输入:间则不留空格。以下为合法输入:(1)7(1)7_ _8_ _ _ _ _9 (2)7 (3)7(Tab)8 _ _8_ _ _ _ _9 (2)7 (3)7(Tab)8 8_ _9 9 8_ _9 9但但但但7,8,97,8,97,8,97,8,9则为非法输入。则为非法输入。则为非法输入。则为非法输入。三、三、三、三、scanf scanf 函数的使用函数的使用函数的使用函数
20、的使用1 1、借助、借助、借助、借助printfprintf函数在输入时给出提示性字符串,使程序更为函数在输入时给出提示性字符串,使程序更为函数在输入时给出提示性字符串,使程序更为函数在输入时给出提示性字符串,使程序更为友好,容易使用。友好,容易使用。友好,容易使用。友好,容易使用。例:例:例:例:main()main()int a,b;int a,b;printf(input first number:);printf(input first number:);scanf(%d,&a);scanf(%d,&a);printf(input second number:);printf(inpu
21、t second number:);scanf(%d,&b);scanf(%d,&b);printf(the sum is%dn,a+b);printf(the sum is%dn,a+b);2 2、在、在、在、在scanfscanf函数中使用函数中使用函数中使用函数中使用%c%c输入字符输入字符输入字符输入字符注意:如果在注意:如果在注意:如果在注意:如果在%c%c前面有空格,前面有空格,前面有空格,前面有空格,%c%c则会接收第一个非空格的字则会接收第一个非空格的字则会接收第一个非空格的字则会接收第一个非空格的字符。符。符。符。例例例例1:scanf(%c,&ch);1:scanf(%c,
22、&ch);printf(%c,%dn,ch,ch);printf(%c,%dn,ch,ch);输入:输入:输入:输入:_R_R输出:输出:输出:输出:_ _,3232例例例例2:scanf(“2:scanf(“_ _%c,&ch);%c,&ch);printf(%c,%dn,ch,ch);printf(%c,%dn,ch,ch);输入:输入:输入:输入:_R_R输出:输出:输出:输出:R R,82823 3、在、在、在、在scanfscanf函数中使用函数中使用函数中使用函数中使用%d%d接收整数接收整数接收整数接收整数例:例:例:例:scanf(%d,&a);printf(a=%dnb=%d
23、nc=%c,scanf(%d,&a);printf(a=%dnb=%dnc=%c,scanf(%d,&b);scanf(%d,&b);输入:输入:输入:输入:159j14 159j14 a,b,c);a,b,c);scanf(%c,&c);scanf(%c,&c);输出:输出:输出:输出:a=159 b=65536 c=ja=159 b=65536 c=j若输入的第一个字符即为非法字符呢?若输入的第一个字符即为非法字符呢?若输入的第一个字符即为非法字符呢?若输入的第一个字符即为非法字符呢?例:例:例:例:scanf(“%d“scanf(“%d“,&a);&a);输入:输入:输入:输入:j j
24、scanf(“%c“scanf(“%c“,&c);&c);printf(a=%dnc=%c,a,c);printf(a=%dnc=%c,a,c);输出:输出:输出:输出:a=32a=32 c=j c=j4 4、当格式字符串中的输入格式不止一个时、当格式字符串中的输入格式不止一个时、当格式字符串中的输入格式不止一个时、当格式字符串中的输入格式不止一个时 若若若若scanf()scanf()函数读到非法字符就会停止其它未读取的动作。函数读到非法字符就会停止其它未读取的动作。函数读到非法字符就会停止其它未读取的动作。函数读到非法字符就会停止其它未读取的动作。例:例:例:例:scanf(%d%c,&a
25、,&c);scanf(%d%c,&a,&c);printf(a=%d,c=%cn,a,c);printf(a=%d,c=%cn,a,c);若输入:若输入:若输入:若输入:j j 输出:输出:输出:输出:a=575,c=$a=575,c=$4-3 4-3 输入输出字符的函数输入输出字符的函数输入输出字符的函数输入输出字符的函数 一、一、一、一、putcharputchar函数函数函数函数1 1、功能:、功能:、功能:、功能:向终端输出一个字符。向终端输出一个字符。向终端输出一个字符。向终端输出一个字符。2 2、格式:、格式:、格式:、格式:putchar(ch);putchar(ch);ch c
26、h 可以是字符变量、整型变量,字符常量等。可以是字符变量、整型变量,字符常量等。可以是字符变量、整型变量,字符常量等。可以是字符变量、整型变量,字符常量等。3 3、putcharputchar函数的使用:函数的使用:函数的使用:函数的使用:输出单个字符:输出单个字符:输出单个字符:输出单个字符:char a=B;putchar(a);char a=B;putchar(a);输出转义字符:输出转义字符:输出转义字符:输出转义字符:putchar(n);putchar(n);输出一个换行符;输出一个换行符;输出一个换行符;输出一个换行符;putchar(101 putchar(101););输出字
27、符输出字符输出字符输出字符A;A;putchar();putchar();输出单引号;输出单引号;输出单引号;输出单引号;4 4、强调:使用、强调:使用、强调:使用、强调:使用putcharputchar函数应带头文件函数应带头文件函数应带头文件函数应带头文件#include#include 二、二、二、二、getchargetchar函数函数函数函数 (#include)(#include)1 1、功能:、功能:、功能:、功能:从输入设备输入一个字符。从输入设备输入一个字符。从输入设备输入一个字符。从输入设备输入一个字符。2 2、格式:、格式:、格式:、格式:getchar();getcha
28、r();没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;输入的字符会立即被显示,并在按下输入的字符会立即被显示,并在按下输入的字符会立即被显示,并在按下输入的字符会立即被显示,并在按下enterenter键后才键后才键后才键后才 被变被变被变被变量接收;量接收;量接收;量接收;3 3、getchar()getchar()函数的使用函数的使用函数的使用函数的使用 getchar getchar函数得到的字符可以赋给字符变量或整型变量:函数得到的字符可以赋给字符变量或整型
29、变量:函数得到的字符可以赋给字符变量或整型变量:函数得到的字符可以赋给字符变量或整型变量:char c;c=getchar();char c;c=getchar();getchar getchar 函数作为表达式的一部分:函数作为表达式的一部分:函数作为表达式的一部分:函数作为表达式的一部分:putchar(getchar();printf(%c,getchar();putchar(getchar();printf(%c,getchar();三、三、三、三、getchgetch函数函数函数函数 (#include)(#include)1 1、功能:、功能:、功能:、功能:从输入设备输入一个字符
30、。从输入设备输入一个字符。从输入设备输入一个字符。从输入设备输入一个字符。2 2、格式:、格式:、格式:、格式:getch();getch();没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;输入字符后不需要按下输入字符后不需要按下输入字符后不需要按下输入字符后不需要按下enterenter键,刚才所输入的字符会键,刚才所输入的字符会键,刚才所输入的字符会键,刚才所输入的字符会立即显示出来,变量也会马上接收这个字符立即显示出来,变量也会马上接收这个字符立即显示出来,变
31、量也会马上接收这个字符立即显示出来,变量也会马上接收这个字符(与与与与getchargetchar函函函函数的区别所在数的区别所在数的区别所在数的区别所在);四、四、四、四、putchputch函数函数函数函数 (#include)(#include)1 1、功能:、功能:、功能:、功能:向终端输出一个字符。向终端输出一个字符。向终端输出一个字符。向终端输出一个字符。2 2、格式:、格式:、格式:、格式:putch(ch);putch(ch);ch ch 可以是字符变量、整型变量,字符常量等。可以是字符变量、整型变量,字符常量等。可以是字符变量、整型变量,字符常量等。可以是字符变量、整型变量,
32、字符常量等。五、五、五、五、getchgetch函数函数函数函数 (#include)(#include)1 1、功能:、功能:、功能:、功能:从输入设备输入一个字符。从输入设备输入一个字符。从输入设备输入一个字符。从输入设备输入一个字符。2 2、格式:、格式:、格式:、格式:getch();getch();没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;没有参数,函数的值就是从输入设备得到的字符;输入字符后不需要按下输入字符后不需要按下输入字符后不需要按下输入字符后不需要按下enterenter键,变量会马上
33、接收这个键,变量会马上接收这个键,变量会马上接收这个键,变量会马上接收这个字符字符字符字符,屏幕上也看不到这个被输入的字符屏幕上也看不到这个被输入的字符屏幕上也看不到这个被输入的字符屏幕上也看不到这个被输入的字符(与与与与getchargetchar,getchegetche函数的区别所在函数的区别所在函数的区别所在函数的区别所在);经常使用于用户不希望看到所输入的内容的时候,如经常使用于用户不希望看到所输入的内容的时候,如经常使用于用户不希望看到所输入的内容的时候,如经常使用于用户不希望看到所输入的内容的时候,如输入密码等。输入密码等。输入密码等。输入密码等。也经常使用在程序运行时需要按下任意键继续的情况。也经常使用在程序运行时需要按下任意键继续的情况。也经常使用在程序运行时需要按下任意键继续的情况。也经常使用在程序运行时需要按下任意键继续的情况。