C语言数据的输入输出

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章数据的输入与输出(2)3.4.3字符输入输出函数3.4.4格式化输入输出函数的一般使用数据输入输出的概念所谓输入输出是以计算机主机为主体而言的。输出:从计算机向外部输出设备(显示器,打印机)输出数据。输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的例如:字符输入函数:getchar字符输出函数:putchar格式输入函数:scanf格式输出函数:printf字符串输入函数:gets字符串输出函数:puts3.4.3字符输入输出函数putchar(x)函数:有参数例:putchar(ch);putchar('A');putchar(65);每句只能输出一个字符数据。getchar()函数:无参数从键盘读入一个字符(空格回车都算)。程序执行到getchar函数时,等待输入字符,直到按回车才结束,回车前的所有输入字符都将逐个显示在屏幕上。但只有第一个字符被getchar函数接收。c=getchar();按回车符才可送出当使用这两个函数时,在程序的开头一定要加上:#includestdio.h字符输入输出函数getch()函数:无参数。getch()的作用与getchar类似,都是从标准输入设备(通常指键盘)读入一个字符。其调用形式分别为:getch();但getch函数读入的字符不会回显在屏幕上,它与getchar函数不同之处在于:getch函数不必输入回车才结束,只要输入任意一个键,该字符立即被接收,程序继续执行下一条语句。利用这一特点,这两个函数经常用于交互输入的过程中实现暂停功能,或直接查看程序运行结果。字符输入输出函数[补充例题]#includestdio.hmain(){charch;ch=getchar();putchar(ch);putchar('\n');printf(%c,%d\n,ch,ch);getch();/*等待按任一键程序结束*/}当屏幕输入12345回车时屏幕输出的结果是什么?此语句可否用:scanf(“%c“,&ch);例:输出单个字符#includestdio.hmain(){chara,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('');输出空格运行结果:ABCABC字符输入输出函数putchar('\101');A运行程序:从键盘输入字符a按Enter键屏幕上将显示输出的字符aaa例输入单个字符。#includestdio.hmain(){charc;c=getchar();putchar(c);putchar('\n');}字符输入输出函数3.4.4格式输入函数与格式输出函数printf函数是格式化输出函数,用于向标准输出设备(通常指定为屏幕)按规定格式输出数据。printf函数的调用格式为:printf(格式控制字符串,输出列表);其中格式化字符串包括两部分内容:一是普通字符按原样输出,转义字符输出它所代表的字符;二是“输出格式说明”,以“%”开始,后跟格式字符,用来指定输出数据的格式。如%d输出int型数据输出列表是若干个需要输出的数据项,称为函数的参数,可以是常量、变量或表达式,各参数之间用,分开。格式化输出函数printf()printf函数的输出格式说明每个格式说明都必须用%开头,以一个格式字符作为结束,在此之间根据需要可以插入宽度说明、长度修饰符'l'和'L等。(1)格式字符:格式字符用于规定输出不同的数据类型,格式字符和它们的作用如下表,可详见附录D。格式化输出函数printf()格式字符作用d或i输出十进制有符号整数(正数不输出符号+)u输出十进制无符号整数o无符号整数以八进制整数输出(输出时不带前导0)x或X无符号整数以十六进制整数输出(输出时不带前导0x或0X)。x用于输出abcdef,X用于输出ABCDEFc以字符形式输出单个字符s输出字符串直至字符串结束标志'\0'为止,'\'不输出f以小数形式输出实型数据,系统默认整数部分全部输出,小数部分输出6位小数,小数部分自动四舍五入e或E以指数形式输出实数,系统默认输出1位整数和5位小数,超长部分自动四舍五入,输出格式为:[-]m.ddddde±ddg或G由系统来选择%f或%e输出格式,宽度小者被输出p输出变量的内存地址%输出一个%号格式化输出函数printf()(2)长度修饰符:长度修饰符加在%和格式字符之间。长度修饰符作用l格式字符是d,i,o,u,x,X时,用于输出长整型数据(longint)L格式字符是e,E,f,g,G时,用于输出长双精度实型数据(longdouble)从上表可知:双精度实型数据的输出不要用%lf,只要用%f即可。但长双精度实型数据的输出必须加长度修饰符L,例如%Lf、%Le等。(3)#修饰符:使用%#o、%#x,在输出的八进制或十六进制前加前导“0”。例如:main(){unsignedc=65535;printf(%#o\n,c);printf(%#x\n,c);}格式化输出函数printf()输出结果如下:01777770xffff格式化输出函数printf()(4)在输出的数字前加+号使用%+格式字符(如%+d、%+f等),可在输出的数字前加+号,例如printf(%+d,%+10.2f,123,12345.678);输出结果如下:+123,+12345.68。例:intx=1234,y=123,z=12;printf(%4d+%3d+%2d,x,y,z)输出结果:1234+123+12格式化输出函数printf()(5)输出数据所占的宽度①整型数据的输出宽度%md、%mu、%mo、%mx,按m宽度输出数据,不足m个位数,左补空格(数据右对齐)。②实型数据的输出宽度%m.nf、%m.ne、%m.ng,数据输出的总宽占m列,其中小数部分占n列,若数据自身宽度小于m列,则左补空格。③字符串的输出宽度%ms输出宽度占m列,若字符串宽度小于m列,左补空格,若字符串宽度大于m列则原样输出字串。整型数据的输出宽度main(){inta=34,b=12345;clrscr();printf(%d\n,a);printf(%10d\n,a);printf(%-10d\n,a);printf(%4d\n,b);}34343412345实型数据的输出宽度main(){floata=123.456;clrscr();printf(a=%f\n,a);printf(a=%4f\n,a);printf(a=%15f\n,a);printf(a=%.2f\n,a);printf(a=%.5f\n,a);}a=123.456001a=123.456001a=123.456001a=123.46a=123.45600格式化输出函数printf()④字符数据的输出宽度%mc输出宽度占m列,左补m-1个空格。在输出宽度m前加一个负号–,则右补m-1个空格。表2.11举例说明字符型数据的输出。输出语句输出结果说明printf(%c\n,'A');A输出宽度为1printf(%5c\n,'A');A输出宽度为5,左补4个空格printf(%-5c***\n,'A');A***输出宽度为5,右补4个空格格式化输出函数printf()(1)d格式符。用来输出十进制整数。几种用法:①%d:按十进制整型数据的实际长度输出。②%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。例:printf(″%4d,%4d″,a,b);若a=123,d=12345,则输出结果为□123,12345③%ld:输出长整型数据。例:longa=135790;/*定义a为长整型变量*/printf(″%ld″,a);输出结果为135790格式化输出函数printf()(2)o格式符。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。例:inta=-1;printf(%d,%o,a,a);-1在内存单元中的存放形式(以补码形式存放)如下:1111111111111111输出为:-1,177777不会输出带负号的八进制整数。对长整数(long型)可以用“%lo”格式输出。还可以指定字段宽度,例:printf(%8o,a);输出为:□□177777。(数字前有2个空格)格式化输出函数printf()(3)x格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例:inta=-1;printf(″%x,%o,%d″,a,a,a);输出结果为:ffff,177777,-1可以用“%lx”输出长整型数,也可以指定输出字段的宽度例:“%12x”输出为:ffff。(数字前有8个空格)格式化输出函数printf()(4)u格式符,用来输出unsigned型数据.一个有符号整数(int型)也可以用%u格式输出;一个unsigned型数据也可以用%d格式输出。unsigned型数据也可用%o或%x格式输出。(5)c格式符,用来输出一个字符。如:chard=′a′;printf(″%c″,d);输出字符′a′.一个整数,只要它的值在0~255范围内,可以用“%c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;一个字符数据也可以用整数形式输出。格式化输出函数printf()例无符号数据的输出。#includestdio.hmain(){unsignedinta=65535;intb=-2;printf(a=%d,%o,%x,%u\n,a,a,a,a);printf(b=%d,%o,%x,%u\n,b,b,b,b);}运行结果:a=-1,177777,ffff,65535b=-2,177776,fffe,65534格式化输出函数printf()例:字符数据的输出#includestdio.hmain(){charc='a';inti=97;clrscr();printf(%c,%d\n,c,c);printf(%c,%d\n,i,i);getch();}运行结果:a,97a,97格式化输出函数printf()(6)s格式符输出字符串.①%s。例如:printf(″%s″,″CHINA″)输出字符串“CHINA”(不包括双引号)。②%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格。③%-ms,若串长小于m,字符串向左靠,右补空格。④%m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格。⑤%-m.ns,n个字符输出在m列的左侧,右补空格,若n〉m,m自动取n值。main(){clrscr();printf(*%s*\n,china);printf((*%8s*\n,china);printf(*%-8s*\n,china“);printf(*%5.3s*\n,china“);printf(*%7.2s*\n,china“);printf(*%.4s*\n,china“);}运行结果:*china**china**china**chi**ch**chin*格式化输出函数printf()(7)f格式符。用来以小数形式输出实数(包括单双精度)有以下几种用法:①%f。不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出6位小数。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为7位。②%m.nf。指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。③%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。格式化输出函数printf()例:输出单精度有

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功