c语言程序设计与项目实践第4章

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

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

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

资源描述

第4章C语言标准输入与输出本章的学习重点◆格式输出标准库函数printf◆printf函数的各种格式控制输出◆格式输入标准库函数scanf◆scanf函数的各种格式控制输入◆putchar函数◆getchar函数4.1C语言标准库函数概述C语言的库函数是C语言规定的标准函数。可供用户自由调用。1.库函数分类C语言提供了非常丰富的库函数,主要有:标准输入和输出库函数:printf()和scanf()字符输入输出函数:getchar()和putchar()数学应用函数:求绝对值函数abs(),开根号函数sqrt(),求正弦函数sin(),求余弦函数cos()等。字符串处理函数:strcpy(),strlen(),puts()和gets()等。内存分配与释放函数:malloc(),free()。。。。。。4.1C语言标准库函数概述2.库函数的使用调用这些函数需要包含与这些库函数对应的头文件。例如,调用标准输出函数printf需要包含头文件stdio.h。调用数学函数需要包含头文件math.h,调用字符串处理函数需要包含头文件string.h。头文件包含使用关键字include,一般形式为:#include头文件名或者#include“头文件名”4.2格式输出函数printf从计算机向外部输出设备(如显示器、打印机、磁盘等)输出信息称为“输出”,简单的说,“输出”就是将计算机内的信息以打印或存储的形式转到终端,最常用的就是将数据输出到显示器上。格式输出函数printf是C语言应用最广泛的输出函数,它将信息直接打印到屏幕上,便于程序运行者观察和调试。Printf()函数需要包含头文件stdio.h4.2.1标准格式输出printf函数的一般形式为:printf(“格式输出控制表列”,输出参数表列);格式输出控制表列:可以是直接打印在屏幕上的字符串常量,也可以是用于指定输出格式的特殊字符,即格式说明。输出参数表列:变量,常量,表达式等的列表,可以省略.1.%d格式(或者%i)%d格式(或者%i)以十进制整型格式在屏幕打印输出参数表列的值。4.2.1标准格式输出范例4.1IntegerTypePrint.c使用%d格式输出几种不同的输出参数,如使用%d格式输出实型数据123.456,使用%d格式输出字符型变量c的值,使用%d格式输出表达式(float)a/b的值等。2.%ld格式%ld格式用于输出long型数据对象,如定义long型变量la并赋初值12345678。则应使用%ld格式输出。例如:longla=12345678;printf(“la=%ld\n”,la);4.2.1标准格式输出3.%u格式%u格式以无符号型输出数据,用于输出unsigned类型数据,使用%u格式时,系统将以无符号型输出参数表列的十进制整型值。假如参数表列的值为负数,输出将以该数的补码计算所得整型十进制数输出。范例4.2IntegerTypeUnsigned.c分别使用%d和%u格式输出常量-1。由于在系统中-1以补码形式存放,而%u格式将不考虑数据的符号,而直接将内存中的数值输出,因此得到与%d不一样的数值。4.2.1标准格式输出4.%c格式%c格式以字符型将数据输出在屏幕上.输出参数可以是字符型、整型或实型的常量或变量等。例如:charc=’a’,cc=’6’;printf(“%c,%c,%c\n”,c,cc,122);5.%f格式%f格式以浮点型输出,主要用于输出float型和double型数据。默认输出小数点后6位数字,不够6位补零输出。例如:printf(“%f,%f\n”,123.456,789);4.2.1标准格式输出6.%e格式%e格式以指数形式输出,指数形式由数符、数值、字符、阶符和阶码组成。如下图:7.%s格式%s用于输出字符串。C语言中除了直接以普通字符形式输出字符串,还可以将字符串放在输出表列,以%s格式输出。例如:printf(%s\n,Helloworld);正数:数值E(或e)阶符阶码数值E(或e)阶符阶码数符负数:4.2.1标准格式输出8.%o和%x格式%o和%x格式分别以无符号八进制和十六进制输出数据。例如:printf(%o,%x\n,65535,65535);输出结果为:177777,ffff9.%和\输出由于%和\本身作为特殊控制符,正常情况下无法输出这类符号,需要使用特殊格式才能将其输出。操作方法为在格式控制符%或\前面重写一遍该字符。4.2.2格式输出控制1.%md和%-md格式用于按指定的宽度m以十进制整型输出数据,m为整型值。%md:输出数据宽度m,实际输出,输出数据宽度m,左补空格,输出总共为m列。%-md:输出数据宽度m,实际输出,输出数据宽度m,则右补空格,输出总共为m列。例如:printf(“%4d%4d%4d\n”,2,34567,789);printf(“%-4d%-4d%-4d\n”,2,34567,789);输出结果:___2|34567|_7892___|34567|789_4.2.2格式输出控制2.%mc和%-mc格式用于按指定宽度m输出字符数据,m为整型值。范例4.3SpecialTypeOutFormatChar.c使用%mc或%-mc格式输出如下图案:************4.2.2格式输出控制3.%mf、%-mf、%.nf、%m.nf及%-m.nf格式%mf与%-mf:指定包括小数点在内的数据宽度m,当m大于实际数据宽度时,%mf左补空格,%-mf右补空格,当m小于等于实际数据宽度时,将以实际数值输出。%.nf:指定小数点后的输出宽度。当n大于数据有效位数时右边补零,当n小于数据有效位时采用四舍五入处理。4.2.2格式输出控制3.%mf、%-mf、%.nf、%m.nf及%-m.nf格式%m.nf:指定包括小数点在内数据输出全部宽度,当m大于输出全部数据宽度时,左补空格,当m小于输出全部数据宽度时,将按实际宽度输出。n用于指定小数点后数据宽度,若n大于数据有效位宽度,右补零,若n小于等于数据有效位宽度,将采用四舍五入处理。例如:printf(%6.2f,%5.3f,%8.4f\n,1.234,19.87654,100000.23);输出结果为:__1.23,19.877,100000.23004.2.2格式输出控制4.%ms、%-ms、%m.ns、%-m.ns及%.ns格式%ms和%-ms:用于输出宽度为m列的字符串,当m小于实际字符串长度时,将按实际字符串输出,当m大于实际字符串长度时,%m格式左补空格,%-m右补空格。%m.ns与%-m.ns:m用于指定输出字符串的长度,当m大于实际串长度时,分别左补或右补空格,当m小于等于实际字符串长度时,按实际字符串输出。n用于指定输出左边n个字符,当n大于实际字符串长度时,按实际字符串输出。需要注意的是,当m小于n时,忽略m的作用。4.2.2格式输出控制4.%ms、%-ms、%m.ns、%-m.ns及%.ns格式%.ns:用于输出字符串左边n个字符,当n大于实际字符串长度时,按实际字符串输出。例如:printf(%3s,%7.2s,%.8s,%-5.3s,%6.7s\n,china,china,china,china,china);输出结果为:chi,_____ch,china,chi__,_china4.3格式输入函数scanfscanf用于接收从键盘等终端输入设备向程序输入数据,将接收到的数据存入内存指定区域并赋给某些变量或指向内存的数据对象。使用scanf函数对某变量输入数据后,该变量的值将变为输入的数据值,直到该变量被重新赋值为止。scanf函数调用需要添加stdio.h头文件包含。4.3.1标准格式输入scanf函数的一般形式为:scanf(“格式输入控制表列”,输入参数地址表列);格式输入控制表列:除特殊符号外从键盘输入的字符。输入参数地址表列:用于指定输入参数的地址,并且输入参数个数及类型应与格式控制表列中特殊控制符的个数与类型一一对应。1.%d格式用于程序接收从键盘输入的整型和字符型数据。例如:inta=0;scanf(“%d”,&a);4.3.1标准格式输入范例4.4ScanfWithIntegerInput.c使用scanf函数输入三个int型变量值,求该这三个变量的和与积,并将结果打印到屏幕上,注意接收结果的精度与取值范围。2.%f格式%f:用于输入float型或double型变量的数据。使用%f格式时应与输入参数中变量格式匹配。例如:floatf=0.0;doubled=0.0;scanf(“%f,%f”,&d,&f);键盘输入:123.456,789.987后,变量f的值变为:789.987,变量d的值变为123.456。4.3.1标准格式输入3.%c格式%c:用于输入字符类型数据。空格、回车以及逗号等均作为字符处理。例如:charc1,c2,c3;scanf(“%c%c%c”,&c1,&c2,&c3);printf(“c1=%c,c2=%c,c3=%c\n”,c1,c2,c3);键盘输入:a_b_c输出为:a_b,即c1被赋值为’a’,c2被赋值为’_’,c3被赋值为’b’,另外两个字符’_’和’c’将被作为无效字符丢弃。4.3.1标准格式输入范例4.5ScanfCharacterVariable.c使用键盘输入字符串”Helloworld”,定义11个字符变量用以存储各字符,并将其打印在屏幕上,注意输入的顺序以及输出的顺序。4.%s格式%s:用于输入字符串。程序将空格作为字符’\0’处理,即作为字符串结束标志。例如:chars[15];scanf(“%s”,s);printf(“%s”,s);若输入:Helloworld,输出为:Hello。4.3.2格式输入控制1.%md和%*md格式%md:用于获取输入数据序列的前m位数,当m大于输出数据位数时,按实际数据赋给变量。%*md用于忽略m位的数据输入。例如:inta=0,b=0;scanf(“%3d%2d”,&a,&b);printf(“a=%d,b=%d\n”,a,b);程序输入:123456,输出:a=123,b=45。4.3.2格式输入控制2.控制输入表列中的普通字符控制输入表列中存在普通字符时,一定原样输入,否则系统将因为匹配错误而不能将正确数据赋给相应变量。例如:inti=0;scanf(“i=%d”,&i);printf(“i=%d\n”,i);程序输入:100输出:i=04.3.2格式输入控制3.控制输入格式与输入参数变量类型一一对应控制输入格式一定要与要输入数据的变量类型一致,否则程序无法将正确的数值赋给该变量。例如:inti=0;scanf(“%f”,&i);printf(“%d”,i);程序输入:10输出为:10926161924.4字符输入输出函数字符输入输出函数分别为getchar()和putchar函数。4.4.1putchar函数putchar函数:向终端输出一个字符。其一般形式为putchar(c)其中c可以是字符变量,也可以是字符常量,当c为屏幕无法显示的符号时,以其功能输出,如回车符。例如:chara,b,c;a=’D’;b=’O’;c=’G’;putchar(a);putchar(b);putchar(c);程序输出:DOG。4.4.2getchar函数getchar函数:用于从标准输入设备如键盘等获取一个字符,其一般形式为:getchar()或者c=getchar()其中,c为字符型或整型变量。getchar()函数将键盘键入的任何信息都作为字符处理,因此,getchar函数常用于键盘控制指令。例如:charc;c=getchar();putchar(c);键盘输入:c,按回车键,则输出:c。实训4.1——

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

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

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

×
保存成功