c语言输入和输出.ppt

上传人:本田雅阁 文档编号:2102562 上传时间:2019-02-14 格式:PPT 页数:22 大小:246.51KB
返回 下载 相关 举报
c语言输入和输出.ppt_第1页
第1页 / 共22页
c语言输入和输出.ppt_第2页
第2页 / 共22页
c语言输入和输出.ppt_第3页
第3页 / 共22页
亲,该文档总共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 或 #include“stdio.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(0x41); /* 直接用ASCII码值输出字符A */ putchar(101); /* 输出字符A,它以转义字符表示,八进制 */ ,C语言程序设计-第3章,4,3.2.2 带缓冲区的字符输入函数getchar(),getchar(

4、)函数的功能是从标准输入文件(通常是键盘,亦指磁盘文件)读取一字节代码(即一个字符),并回显。所谓回显,是指输入一个字符的同时又在屏幕上显示出该字符。这是标准C提供的字符输入函数,因此也是最常用的字符输入(尤其是键盘输入)函数。,键盘缓冲区(实际上应该称作输入流即stdin 流)。所谓键盘缓冲区,是指在内存开辟的一片临时单元,用来暂时存放从键盘输入的字符。getchar()函数是带键盘缓冲区的输入函数,是指当从键盘输入字符时,这些字符先存放在键盘缓冲区,如果不敲回车键,getchar()函数并没有真正被执行(即所谓被激活);仅当回车键也被送入键盘缓冲区后,getchar()函数才从键盘缓冲区中

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

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

7、*/ putchar(c); /* 输出该字符*/ ch=getche();/* 从键盘读一字符送给变量ch并回显 */ putchar(ch);/* 输出该字符*/ ,C语言程序设计-第3章,9,3.3 格式化输入和输出函数,3.3.1 printf()函数,用于按指定格式向标准输出设备(屏幕)输出。有两种形式:,printf(“字符串“);,例如,下面的语句: printf(“How are you!n“); 是在屏幕上输出这样一行: How are you!,这种形式的输出并没有指定输出格式。,C语言程序设计-第3章,10,另一种形式是:,printf(“, ),“格式控制串”是由0个或

8、多个格式转换说明组成的一个字符串序列。格式转换说明的一般形式为: %flag width.prechlL输出格式符,格式修饰符(见表3-2),见表3-1,printf(“%d”, 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 scan

9、f(“,),“格式控制串”是由0个或多个格式转换说明组成的一个字符串序列。格式转换说明的一般形式为: %*widthh/l/L输入格式符,格式修饰符(见表3-4),见表3-3,格式转换说明的作用是引导对下一输入项进行转换。,“地址列表”中给出一个或多个输入项,输入项之间用逗号分隔。,从概念上讲,输入项的表示形式是指针,指向存储输入数据的变量。因此,输入项必须指明变量的地址。C语言提供了一个取变量地址的运算符“&”,只要将它作用在变量上,就能得到该变量的地址。例如,&a,&b分别表示变量a和变量b 的地址。,C语言程序设计-第3章,12,例如,若要为int变量a和b从键盘输入数据,如果写作: s

10、canf(“%d%d“, a,b); 是不正确的。可用如下语句实现: scanf(“%d%d“, &a,&b);,如果将上述语句应改为: scanf(“%d,%d“, &a,&b); 即在两个格式转换说明之间插入一个逗号,输入数据时也必须输入一个逗号,如: 123,4567,要注意的是,不要轻易将“c”格式与其它格式混在一起用,以免出错。例如,设a为int型变量,ch是char型变量,对于语句: scanf(“%d%c“,&a,&ch); 若输入为 29A /* 表示空格符 */ 其结果是将数值29送a,而将一个空格字符送ch。,C语言程序设计-第3章,13,3.4 关于格式化输入和输出函数的

11、进一步讨论,3.4.1 printf()和scanf()函数的返回值问题,若成功,printf()函数返回输出的字符个数,出错时返回负数。,/* 本程序测试printf()函数的返回值 */ #include main() int count; /* 定义count,用来接收返回值 */ float r1 = 12345.12345678, r2 = 123.123456789; count = printf(“r1 = %fnr2 = %fn“,r1,r2); printf(“count=%dn“,count);/* 输出printf()函数的返回值 */ 程序输出: r1 = 12345.

12、123047 r2 = 123.123459 count=34,C语言程序设计-第3章,14,scanf()函数也具有返回值,所不同的是,scanf()函数执行成功时的返回值是成功读取的变量数;如果第一个输入项读入就出错,则返回0。,/* 本程序测试scanf()函数的返回值 */ #include int main() int 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 则输

13、出结果为: a=123,b=1234,c=12345 count=3,C语言程序设计-第3章,15,3.4.2 printf()函数的p格式符的应用,在printf()函数中,p格式符用来输出指针的值,即指针所指对象的首地址。利用p格式符的这一特性,我们可以了解变量的空间分配情况。下面来看一个例子。,/* 本程序测试变量的空间分配情况 */ #include int main() int i,j,k; printf(“&i=%p,&j=%p,&k=%pn“, &i,&j,&k); 执行后的输出为(不同的系统环境可能输出值不同,下面是Turbo 2.0的一种输出): &i=650B:0FD6,&

14、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=dabcaaa,C语言程序设计-第3章,17,/* 用“%”格式接收指定范围的字符 */ #include int main() int *ptr; /* 定义一个指针 */ scanf(“%

15、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); 设输入为: How are you! 程序输出为: How are you!,C语言程序设计-第3章,19,3.4.4 scanf()函数应用中两个最常

16、见的问题,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备18001539号-1