资源描述
精选ppt课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第3章 数据的输入与输出(2),1,精选ppt课件,3.4.3 字符输入输出函数,3.4.4 格式化输入输出函数的一般使用,2,精选ppt课件,数据输入输出的概念,所谓输入输出是以计算机主机为主体而言的。,输出:从计算机向外部输出设备(显示器,打印机)输出数据。输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据,C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的,例如:,字符输入函数:getchar 字符输出函数:putchar,格式输入函数:scanf 格式输出函数:printf,字符串输入函数:gets 字符串输出函数:puts,3,精选ppt课件,3.4.3字符输入输出函数,putchar(x)函数:有参数,例:putchar(ch);putchar(A);putchar(65);,每句只能输出一个字符数据,。,getchar()函数:无参数,从键盘读入一个字符(空格回车都算)。,程序执行到 getchar函数时,等待输入字符,直到按回车才结束,回车前的所有输入字符都将逐个显示在屏幕上。但只有第一个字符被getchar函数接收。,c=getchar();按回车符才可送出,当,使用这两个函数时,在程序的开头一定要加上:,#include ,4,精选ppt课件,字符输入输出函数,getch()函数:无参数。,getch()的作用与getchar类似,都是从标准输入设备(通常指键盘)读入一个字符。其调用形式分别为:,getch();,但getch函数读入的字符不会回显在屏幕上,它与getchar函数不同之处在于:,getch函数不必输入回车才结束,只要输入任意一个键,该字符立即被接收,程序继续执行下一条语句。利用这一特点,这两个函数经常用于交互输入的过程中实现暂停功能,或直接查看程序运行结果,。,5,精选ppt课件,字符输入输出函数,补充例题,#include,main(),char ch;,ch=getchar();,putchar(ch);,putchar(n);,printf(%c,%dn,ch,ch);,getch();/*等待按任一键程序结束*/,当屏幕输入12345回车时屏幕输出的结果是什么?,此语句可否用:,scanf(“%c“,6,精选ppt课件,例:输出单个字符,#include stdio.h,main(),char a,b,c;,a=A;,b=B;,c=C;,clrscr();,putchar(a);putchar(b);putchar(c);putchar(n);,putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);,每次只能输出一个字符,putchar();输出空格,运行结果:ABC,A,B,C,字符输入输出函数,putchar(101);A,7,精选ppt课件,运行程序:,从键盘输入字符a按Enter键屏幕上将显示输出的字符a,a,a,例 输入单个字符。,#include stdio.hmain()char c;c=getchar();putchar(c);putchar(n);,字符输入输出函数,8,精选ppt课件,3.4.4格式输入函数与格式输出函数,printf函数是格式化输出函数,用于向标准输出设备(通常指定为屏幕)按规定格式输出数据。,printf函数的调用格式为:,printf(格式控制字符串,输出列表);,其中,格式化字符串包括两部分内容,:,一是普通字符,按原样输出,转义字符,输出它所代表的字符;二是,“输出格式说明”,以“%”开始,后跟格式字符,用来指定输出数据的格式。如%d 输出int型数据,输出列表,是若干个需要输出的数据项,称为函数的参数,可以是常量、变量或表达式,各参数之间用,分开。,9,精选ppt课件,格式化输出函数,printf(),printf函数的输出格式说明,每个格式说明都必须用%开头,以一个格式字符作为结束,在此之间根据需要可以插入,宽度说明、长度修饰符l和L,等。,(1)格式字符:,格式字符用于规定输出不同的数据类型,格式字符和它们的作用如下表,可详见附录D。,10,精选ppt课件,格式化输出函数,printf(),格式字符,作 用,d 或 i,输出十进制有符号整数(正数不输出符号+),u,输出十进制无符号整数,o,无符号整数以八进制整数输出(,输出时不带前导0,),x 或 X,无符号整数以,十六进制整数输出(输出时不带前导0 x或0X),。x用于输出abcdef,X用于输出ABCDEF,c,以,字符形式输出单个字符,s,输出字符串直至字符串结束标志0为止,不输出,f,以小数形式输出实型数据,系统默认整数部分全部输出,小数部分输出6位小数,小数部分,自动四舍五入,e 或 E,以指数形式输出实数,系统默认输出1位整数和5位小数,超长部分自动四舍五入,输出格式为:-m.dddddedd,g 或 G,由系统来选择%f或%e输出格式,宽度小者被输出,p,输出变量的内存地址,%,输出一个%号,11,精选ppt课件,格式化输出函数,printf(),(2)长度修饰符:长度修饰符加在%和格式字符之间。,长度修饰符,作 用,l,格式字符是d,i,o,u,x,X时,用于输出长整型数据(long int),L,格式字符是e,E,f,g,G时,用于输出长双精度实型数据(long double),从上表可知:,双精度实型数据的输出不要用%lf,只要用%f即可。但,长双精度实型数据的输出必须加长度修饰符L,例如%Lf、%Le等。,12,精选ppt课件,(3)#修饰符:,使用,%#o、%#x,在输出的八进制或十六进制前加前导“0”。例如:,main(),unsigned c=65535;,printf(%#on,c);,printf(%#xn,c);,格式化输出函数,printf(),输出结果如下:,0177777,0 xffff,13,精选ppt课件,格式化输出函数,printf(),(4)在输出的数字前加+号,使用%+格式字符(如%+d、%+f等),可在输出的数字前加+号,例如,printf(%+d,%+10.2f,123,12345.678);,输出结果如下:,+123,+12345.68。,例:int x=1234,y=123,z=12;,printf(%4d+%3d+%2d,x,y,z),输出结果:1234+123+12,14,精选ppt课件,格式化输出函数,printf(),(5)输出数据所占的宽度,整型数据的输出宽度,%md、%mu、%mo、%mx,按m宽度输出数据,不足m个位数,左补空格,(数据右对齐)。,实型数据的输出宽度,%m.nf、%m.ne、%m.ng,数据输出的总宽占m列,其中,小数部分占n列,若数据自身宽度小于m列,则左补空格,。,字符串的输出宽度,%ms 输出宽度占m列,若字符串宽度小于m列,左补空格,若字符串宽度大于m列则原样输出字串。,15,精选ppt课件,整型数据的输出宽度,main(),int a=34,b=12345;,clrscr();,printf(%dn,a);,printf(%10dn,a);,printf(%-10dn,a);,printf(%4dn,b);,34,34,34,12345,16,精选ppt课件,实型数据的输出宽度,main(),float a=123.456;,clrscr();,printf(a=%fn,a);,printf(a=%4fn,a);,printf(a=%15fn,a);,printf(a=%.2fn,a);,printf(a=%.5fn,a);,a=123.456001,a=123.456001,a=123.456001,a=123.46,a=123.45600,17,精选ppt课件,格式化输出函数,printf(),字符数据的输出宽度,%mc输出宽度占m列,左补m-1个空格。,在输出宽度m前加一个负号,则右补m-1个空格,。表2.11举例说明字符型数据的输出。,输出语句,输出结果,说明,printf(%cn,A);,A,输出宽度为1,printf(%5cn,A);,A,输出宽度为5,左补4个空格,printf(%-5c*n,A);,A *,输出宽度为5,右补4个空格,18,精选ppt课件,格式化输出函数,printf(),格式符。用来输出十进制整数。,几种用法:,:,按十进制整型数据的实际长度输出。,:,为指定的输出字段的宽度。如果,数据的位数小于,,,则左端补以空格,若,大于,则按实际位数输出,。,例,:,(,,,,),;,若,则输出结果为,,,:,输出长整型数据。,例,:,;,/*,定义,a,为长整型变量*,/,(,,);,输出结果为,19,精选ppt课件,格式化输出函数,printf(),(2)格式符。以八进制整数形式输出。,输出的数值不带符号,,符号位也一起作为八进制数的一部分,输出。,例:,int a=-1;,printf(%d,%o,a,a);,在内存单元中的存放形式(以补码形式存放)如下:,1111111111111111,输出为:,,,不会输出带负号的八进制整数。对长整数(型)可以,用“,”,格式输出。还可以,指定字段宽度,,,例:,(,);,输出为:,177777。(数字前有2个空格),20,精选ppt课件,格式化输出函数,printf(),(3)格式符。以十六进制数形式输出整数。同样不会出,现负的十六进制数。,例:,;,(,);,输出结果为:,ffff,,可以用,“”,输出长整型数,也可以,指定输出字段的宽度,例:,“”,输出为:ffff。(数字前有8个空格),21,精选ppt课件,格式化输出函数,printf(),(4)格式符,用来输出型数据.,一个有符号整数(型)也可以用格式输出;,一个型数据也可以用格式输出。,型数据也可用或格式输出。,(5)格式符,用来输出一个字符。,如:,d;,(,d);,输出字符.,一个整数,,只要它的值在范围内,可以用“”,使之按字符形式输出,,在输出前,系统会将该整数作为ASCII码,转换成相应的字符;一个字符数据也可以用整数形式输出。,22,精选ppt课件,格式化输出函数,printf(),例 无符号数据的输出。,#include,main(),unsigned int a=65535;,int b=-2;,printf(a=%d,%o,%x,%un,a,a,a,a);,printf(b=%d,%o,%x,%un,b,b,b,b);,运行结果:a=-1,177777,ffff,65535b=-2,177776,fffe,65534,23,精选ppt课件,格式化输出函数,printf(),例:字符数据的输出,#include,main(),char c=a;,int i=97;,clrscr();,printf(%c,%dn,c,c);,printf(%c,%dn,i,i);,getch();,运行结果:a,97a,97,24,精选ppt课件,格式化输出函数,printf(),(6)s格式符 输出字符串.,。例如:,(,),输出字符串“”(不包括双引号)。,%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长,小于m,则左补空格。,%-ms,若串长小于m,字符串,向左靠,右补空格,。,%m.ns,输出占m列,,只取字符串中左端n个字符,,输出在m列的,右侧,左补空格。,%-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自,动取n值。,25,精选ppt课件,main(),clrscr();,printf(,*,%s,*,n ,china);,printf(,*,%8s,*,n,china);,printf(,*,%-8s,*,n ,china“);,printf(,*,%5.3s,*,n ,china“);,printf(,*,%7.2
展开阅读全文