第2讲 数据输入-输出的概念.ppt
《第2讲 数据输入-输出的概念.ppt》由会员分享,可在线阅读,更多相关《第2讲 数据输入-输出的概念.ppt(51页珍藏版)》请在麦多课文档分享上搜索。
1、第2讲 数据输入/输出的概念,1.熟练掌握常用输入输出函数:scanf、printf、getchar、putchar、gets、puts等2. 熟练掌握文件的打开和关闭-fopen()和fclose()3. 熟练掌握文件的基本读写操作常用函数:fscanf、fprintf、fgetc、fputc、fgets、fputs等4. 熟练掌握文件的状态检测-feof()函数,一、数据输入/输出的概念,内存,RAM,从键盘将数据输入,从数据文件读入,将数据输出到屏幕,将数据输出到文件,说明: (1) 数据输入/输出是相对计算机内存(2) 数据输入/输出使用标准库函数完成(3) 数据输入/输出标准库函数的
2、原型声明在stdio.h头文件中,getchar(),getch(),gets() scanf(),fgetc(), fgets() fscanf(), fread(),putchar(), put() printf(),fputc(), fputs() fprintf(), fwrite(),putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。其一般形式为: putchar(字符变量);例如: putchar(A); 输出大写字母Aputchar(x); 输出字符变量x的值putchar(n); 换行 说明:使用本函数前必须要用文件包含命令:#include “stdio.
3、h“,1、字符输出函数putchar(),二、字符(串)键盘输入/屏幕输出,字符串输出函数 puts使用格式:puts (st) 其中:st可以是己定义的字符数组名,也可以是指向字符变量的指针变量。功能:把字符数组中或指针变量所指向的字符串输出到显示器。输出从数组的第一个字符或指针所指向的字符到字符串(以0结尾)之间的所有字符。例: char c6=“China“; puts(c); puts不需要格式控制符,输出完后且自动换行,等价于:printf(“%sn“,c); char c=“abc0sjd3” ;puts(c); 输出结果为: abc,2. 字符串输出函数puts(),二、字符(串
4、)键盘输入/屏幕输出,函数getchar函数的功能是从键盘上输入一个字符。其一般形式为:字符变量=getchar(); 如:#includevoid main() char c;printf(“input a charactern“);c=getchar(); putchar(c); 使用getchar函数还应注意几个问题:,3、字符输入函数getchar( ),二、字符(串)键盘输入/屏幕输出,getchar函数只能接受单个字符,输入数字也按字符处理。输入多余的字符存入到键盘的缓冲区,若有下一个getchar函数语句,直接从键盘的缓冲区读取。#includemain() char c1,c2
5、;c1=getchar();c2= getchar();putchar(c1);putchar(c2);当程序运行后:输入ABCDEF ,输出为:,说明:,二、字符(串)键盘输入/屏幕输出,2. getch() 它与getchar()函数的区别是输入不需要回车键结束,即输入一个字符就自动结束输入。它们的调用格式为: getch();,二、字符(串)键盘输入/屏幕输出,该函数不将读入的字符回显在显示屏幕上,利用回显和不回显的特点,它经常用于交互输入的过程中完成暂停等。在调试程序时,也经常可在main函数最后增加一个getch();以直接观察程序的运行结果而不必每次都使用Alt+F5切换窗口,例如
6、: #include void main() float x;printf(“Enter The Number x:“); scanf(“%f“, /*等待输入任一键*/ ,4. 输入字符串函数gets()函数:,字符串输入函数gets 格式:gets (st)功能:从标准输入设备键盘上输入一个字符串。本函数得到一个函数值,即为该字符数组的首地址。,说明:gets函数并不以空格作为字符串输入结束的标志,而只以回车作为输入结束。这是与scanf(“%s”,)函数不同的。,二、字符(串)键盘输入/屏幕输出,例 字符串的输入示例 #include “stdio.h“ void main()char
7、st120,st220;printf(“input string:n“);gets(st1);scanf(“%s“,st2);puts(st1);puts(st2); 程序运行结果是:,二、字符(串)键盘输入/屏幕输出,一般形式为: printf(“格式控制字符串”,输出表列),例如:printf(“%3dn“,x),%格式说明起始符,3输出数据的宽度,d输出数据的类型,x输出项,格式输出函数printf(),三、格式输入/输出,可见,双引号中的字符除了格式说明的字符外,其它非格式说明的普通字符按原样输出。,例如:,格式输出函数printf(),说明:格式字符串的一般形式为:% 标志输出最小宽
8、度精度长度类型字符 其中方括号中的项为可选项。1. 类型字符 用以表示输出数据的类型:C语言中输出不同数据,使用不同的类型字符, 例如:输出整型数据,使用的类型符 d,i (小写),格式输出函数printf(),表示输出类型的格式字符及 意义d, i 以十进制形式输出带符号整数(正数不输出符号)o 以八进制形式输出无符号整数(不输出前缀O)x, X 以十六进制形式输出无符号整数(不输出前缀OX)u 以十进制形式输出无符号整数f 以小数形式输出单、双精度实数e ,E 以指数形式输出单、双精度实数g ,G 以%f%e中较短的输出宽度输出单、双精度实数c 输出单个字符s 输出字符串,格式输出函数pr
9、intf( ),2.标志 -、+、#、空格四种,- 结果左对齐,右边填空格+ 输出符号(正号或负号)空格输出值为正时冠以空 格,为负时冠以负号# 对c,s,d,u类无影响;对o类, 在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点 3.输出最小宽度用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度,则按实际位数输出 ,若实际位数少于定义的宽度则补以空格或0。,格式输出函数printf(),4. 精度精度格式符以“.”开头,后跟十进制整数。意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于精度数,则截去
10、超过的部分。 5. 长度长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。,格式输出函数printf(),注意:1. 格式字符串是以%开头的字符串,可由格式字符串和非格式字符串两种组成,其中格式控制字符串用于指定输出格式。 2. 在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。3. 非格式字符串在输出时原样照印,在显示中起提示作用。4. 输出表列中给出了各个输出项, 要求格式字符串和各输出项在数量和类型上应该一一对应。,格式输出函数printf(),1. scanf()函数的一般形式scanf(“格式控制字符串”,地址列表); 其中,格式控制字符串的作
11、用与printf函数相同,但不能显示非格式字符串, 也就是不能显示提示字符串。地址列表,用来接受数据各变量的地址。 变量的地址表示如下:& 变量名,例如: &a,&b分别表示变量a和变量b 的地址,格式输入函数scanf(),例: main() int a,b,c;printf(“input a,b,cn“);scanf(“%d%d%d“, ,格式输入函数scanf(),2. 格式字符串格式字符串的一般形式为: %*输入数据宽度长度类型字符 其中有方括号的项为任选项。各项的意义如下: (1) 类型字符表示输入数据的类型,其格式符和意义如下所示:d 输入十进制整数o 输入八进制整数x 输入十六进
12、制整数u 输入无符号十进制整数f或e 输入实型数(用小数形式或指数形式)c 输入单个字符s 输入字符串,格式输入函数scanf(),2. “*”符用以表示该输入项读入后不赋予相应的变量,跳过该输入值。 如 scanf(“%d %*d %d“, 输入:12345678将把1234赋予a,而把5678赋予b。,格式输入函数scanf(),4.长度长度格式符为l和h,l表示输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h表示输入短整型数据。例如:main() int a;long b;double x;scanf(“%d%ld%lf”,格式输入函数scanf(),3. 使用scanf函数还
13、必须注意以下几点:(1) scanf函数中没有精度控制 。如:scanf(“%5.2f”,输入: 12 10 或 1210,格式输入函数scanf(),(4)在输入字符数据时,若格式控制串中无非格式字符,则认为所有 输入的字符均为有效字符。 例如:scanf(“%c%c%c“,输入时各数据之间可加空格。,格式输入函数scanf(),(5)如果格式控制串中有非格式字符则输入时也要输入该非格式字符。例如:scanf(“%d,%d,%d“, 则输入应为: a=5,b=6,c=7,格式输入函数scanf(),(6)如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果可能不正确。 void mai
14、n() int a;printf(“input a numbern“);scanf(“%d“, ,由于输入数据类型为整型, 而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。,格式输入函数scanf(),格式输入/输出-例题,例1:为float类型变量a、b输入数据1.2和2.3,下列哪一组是正确的( )。A、scanf(%f%f, 输入1.22.3,例2: 编一程序输入一个正整数,输出它的16进制数,main() int n;scanf(“%d”,所谓文件 存储在外部介质上的数据的集合,例如:存储在磁盘上。C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺
15、序组成。C语言中的文件存储方式分为 :ASCII文件 和 二进制文件ASCII文件(文本文件) : 每个字节存放一个ASCII代码,代表一个字符二进制文件 : 把内存中的数据按其在内存中的存储形式原样输出到 磁盘上存放。,四、通过文件输入/输出,ASCII文件便于字符处理和输出,二进制文件节省存储空间。,其中: 0 -ASCII码为 48(对应编码为110000) 1 -ASCII码为 49 (对应编码为110001),说明:1. 一个文件是一个字符流 或 二进制流。2. C 语言中对文件的存取是以字符(字节)为单位的, 输入输出数据流仅受程序控制,不受物理符号控制(如:回车,换行符), 称这
16、样的文件为 流文件。,10000的二进制形式,四、通过文件输入/输出,C 语言处理文件通常使用缓冲文件系统缓冲文件系统 系统自动地在内存中为每个正在使用的文件名开辟一个 缓冲区。用于处理文本文件(字符流)。程序数据区 (输入、输出)文件缓冲区 磁盘文件,标准的 C 语言只采用缓冲文件系统 :既可以处理文本文件,也可以处理 二进制文件。 C语言中对文件的读写都是用库函数来实现。,四、通过文件输入/输出,每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如:文件的名字 、文件状态与文件当前位置等)。这些信息保存在一个 结构体类型的变量中。 结构体类型是由系统定义的,名为 FILE 。T
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 输入输出 概念 PPT
