c语言输入和输出.ppt

上传人:牧羊曲112 文档编号:5426555 上传时间:2023-07-05 格式:PPT 页数:22 大小:210KB
返回 下载 相关 举报
c语言输入和输出.ppt_第1页
第1页 / 共22页
c语言输入和输出.ppt_第2页
第2页 / 共22页
c语言输入和输出.ppt_第3页
第3页 / 共22页
c语言输入和输出.ppt_第4页
第4页 / 共22页
c语言输入和输出.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《c语言输入和输出.ppt》由会员分享,可在线阅读,更多相关《c语言输入和输出.ppt(22页珍藏版)》请在三一办公上搜索。

1、C语言程序设计-第3章,1,第3章 标准输入与输出,3.1 概述,3.2 字符输入输出函数,3.3 格式化输入和输出函数,3.4 输入和输出函数的讨论,C语言程序设计-第3章,2,通过终端输入(如键盘、鼠标等),也称为标准输入(standard input),直接向终端输出(如显示器、打印机等),也称为标准输出(standard output)。,3.1 概述,C语言本身没有提供输入输出语句,C语言中的所有I/O操作都是通过函数调用来实现,而这些并非C语言一部分的输入输出函数均以目标级程序的方式提供,并存放在一个C标准函数库中。,每一个标准库都有一个相应的头文件,该头文件包含了该库中所有函数的

2、函数原型及其相关信息。在调用这些库函数时,要用预处理命令“#include”将有关的“头文件”包括到用户源程序中。标准输入输出库函数对应的头文件是“stdio.h”。stdio是standard input&output的缩写。因此,读者在调用标准输入输出库函数时,你的源程序开头应该有如下编译预处理命令:,#include 或#includestdio.h,C语言程序设计-第3章,3,3.2 字符输入输出函数,3.2.1 字符输出函数putchar(),putchar()函数是向屏幕一个字符,其调用格式为:,putchar(ch);,其中ch为一个字符变量、字符常量或整型常量。,/*本程序测试

3、多种类型数据作putchar()函数参数的输出情况*/#include main()char c=A;/*定义字符变量并初始化*/putchar(c);/*输出变量C的值即字符A*/putchar(A);/*输出字符A*/putchar(x41);/*输出字符A,它以转义字符表示,十六进制*/putchar(0 x41);/*直接用ASCII码值输出字符A*/putchar(101);/*输出字符A,它以转义字符表示,八进制*/,C语言程序设计-第3章,4,3.2.2 带缓冲区的字符输入函数getchar(),getchar()函数的功能是从标准输入文件(通常是键盘,亦指磁盘文件)读取一字节代

4、码(即一个字符),并回显。所谓回显,是指输入一个字符的同时又在屏幕上显示出该字符。这是标准C提供的字符输入函数,因此也是最常用的字符输入(尤其是键盘输入)函数。,键盘缓冲区(实际上应该称作输入流即stdin 流)。所谓键盘缓冲区,是指在内存开辟的一片临时单元,用来暂时存放从键盘输入的字符。getchar()函数是带键盘缓冲区的输入函数,是指当从键盘输入字符时,这些字符先存放在键盘缓冲区,如果不敲回车键,getchar()函数并没有真正被执行(即所谓被激活);仅当回车键也被送入键盘缓冲区后,getchar()函数才从键盘缓冲区中读取一个字符。,C语言程序设计-第3章,5,强调以下三点:,(1)调

5、用getchar()函数输入字符时,必须用另一个变量(字符变量或整型变量)接收输入的字符。例如:ch=getchar();,(2)调用getchar()函数输入字符时,仅当敲入回车键后,函数才被激活。,(3)调用该函数时,输入的每一个字符,包括空白符(即空格、制表符和回车符),都被送存到键盘缓冲区。,C语言程序设计-第3章,6,/*本程序调用getchar()函数输入一个字符*/#include main()char c;/*定义字符变量*/c=getchar();/*接收键盘输入的一个字符*/putchar(c);/*输出该字符*/putchar(n);,C语言程序设计-第3章,7,3.2.

6、3 不带缓冲区的字符输入函数getch()和getche(),这是某些编译器,譬如Turbo C新增加的两个字符输入函数,这两个函数都是从键盘上读入一个字符。两者的区别是:getch()函数将读入的字符不回显在屏幕上,而getche()函数却将读入的字符回显到显示屏幕上。,C语言程序设计-第3章,8,/*本程序调用getchar()函数输入一个字符*/#include main()char c,ch;c=getch();/*从键盘上读一字符不回显送给变量c*/putchar(c);/*输出该字符*/ch=getche();/*从键盘读一字符送给变量ch并回显*/putchar(ch);/*输出

7、该字符*/,C语言程序设计-第3章,9,3.3 格式化输入和输出函数,3.3.1 printf()函数,用于按指定格式向标准输出设备(屏幕)输出。有两种形式:,printf(字符串);,例如,下面的语句:printf(How are you!n);是在屏幕上输出这样一行:How are you!,这种形式的输出并没有指定输出格式。,C语言程序设计-第3章,10,另一种形式是:,printf(,),“格式控制串”是由0个或多个格式转换说明组成的一个字符串序列。格式转换说明的一般形式为:%flag width.prechlL输出格式符,格式修饰符(见表3-2),见表3-1,printf(“%d”,

8、a);,printf(%d%f,a,x);,printf(a=%d,b=%d,a+b=%dn,a,b,a+b);,printf(“a=%-d,x=%+8.2f,x+y=%Lfn,a,x,x+y);,左对齐,正数也要加正号,输出共占8位,其中小数占两位,输出为long double型,C语言程序设计-第3章,11,3.3.2 scanf()函数,scanf()函数的一般形式为:int scanf(,),“格式控制串”是由0个或多个格式转换说明组成的一个字符串序列。格式转换说明的一般形式为:%*widthh/l/L输入格式符,格式修饰符(见表3-4),见表3-3,格式转换说明的作用是引导对下一输入

9、项进行转换。,“地址列表”中给出一个或多个输入项,输入项之间用逗号分隔。,从概念上讲,输入项的表示形式是指针,指向存储输入数据的变量。因此,输入项必须指明变量的地址。C语言提供了一个取变量地址的运算符“&”,只要将它作用在变量上,就能得到该变量的地址。例如,&a,&b分别表示变量a和变量b 的地址。,C语言程序设计-第3章,12,例如,若要为int变量a和b从键盘输入数据,如果写作:scanf(%d%d,a,b);是不正确的。可用如下语句实现:scanf(%d%d,&a,&b);,如果将上述语句应改为:scanf(%d,%d,&a,&b);即在两个格式转换说明之间插入一个逗号,输入数据时也必须

10、输入一个逗号,如:123,4567,要注意的是,不要轻易将“c”格式与其它格式混在一起用,以免出错。例如,设a为int型变量,ch是char型变量,对于语句:scanf(%d%c,&a,&ch);若输入为 29A/*表示空格符*/其结果是将数值29送a,而将一个空格字符送ch。,C语言程序设计-第3章,13,3.4 关于格式化输入和输出函数的进一步讨论,3.4.1 printf()和scanf()函数的返回值问题,若成功,printf()函数返回输出的字符个数,出错时返回负数。,/*本程序测试printf()函数的返回值*/#include main()int count;/*定义count,

11、用来接收返回值*/float r1=12345.12345678,r2=123.123456789;count=printf(r1=%fnr2=%fn,r1,r2);printf(count=%dn,count);/*输出printf()函数的返回值*/程序输出:r1=12345.123047 r2=123.123459 count=34,C语言程序设计-第3章,14,scanf()函数也具有返回值,所不同的是,scanf()函数执行成功时的返回值是成功读取的变量数;如果第一个输入项读入就出错,则返回0。,/*本程序测试scanf()函数的返回值*/#include int main()int

12、 count,a,b,c;count=scanf(“%d,%d,%d”,&a,&b,&c);printf(a=%d,b=%d,c=%dtcount=%dn,a,b,c,count);执行上述程序,如果输入为:123,1234,12345 则输出结果为:a=123,b=1234,c=12345 count=3,C语言程序设计-第3章,15,3.4.2 printf()函数的p格式符的应用,在printf()函数中,p格式符用来输出指针的值,即指针所指对象的首地址。利用p格式符的这一特性,我们可以了解变量的空间分配情况。下面来看一个例子。,/*本程序测试变量的空间分配情况*/#include in

13、t main()int i,j,k;printf(&i=%p,&j=%p,&k=%pn,&i,&j,&k);执行后的输出为(不同的系统环境可能输出值不同,下面是Turbo 2.0的一种输出):&i=650B:0FD6,&j=650B:0FD8,&k=650B:0FDA,C语言程序设计-第3章,16,3.4.3 scanf()函数的“%”格式应用问题,/*用“%”格式接收指定范围的字符*/#include int main()int*ptr;/*定义一个指针*/scanf(“%abcd”,ptr);printf(“ptr=%sn”,ptr);设输入为:dabcaaagade 程序输出为:ptr=

14、dabcaaa,C语言程序设计-第3章,17,/*用“%”格式接收指定范围的字符*/#include int main()int*ptr;/*定义一个指针*/scanf(“%bcd,”,ptr);printf(“%sn”,ptr);设输入为:How are you,John!程序输出为:How are you,注:这是由于逗号作为不可接受字符,而作为字符串的定界符.,C语言程序设计-第3章,18,/*本程序可接收任意字符串的输入*/,#include int main()int*ptr;/*定义一个指针*/scanf(“%n”,ptr);printf(“ptr=%sn”,ptr);设输入为:H

15、ow are you!程序输出为:How are you!,C语言程序设计-第3章,19,3.4.4 scanf()函数应用中两个最常见的问题,1.空白符问题,/*本程序测试格式转换说明%dn的应用情况*/#include int main(void)int a;printf(Please input the data:);scanf(“%dn”,问题:被要求输入两个数才能正常结束,原因:程序要求输入空白符,而空白符是数据的定界符,C语言程序设计-第3章,20,2标准输入流中残留字符问题,/*本程序测试标准输入流中残留字符的情况*/#include int main(void)int a;char c;scanf(%d,注:在这里输入一个整数并按回车键后,程序就输出了结果!,C语言程序设计-第3章,21,1234,n,a,1234,A,注:在这里输入一个整数1234并按回车键后,就相当于1234n,这个n就输入给字符变量c!,C语言程序设计-第3章,22,本章全部练习都要做.做在练习本上.,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号