第10章文件操作.ppt

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
putchar(++c); }
输入重定向
prog < infile
输出重定向
prog > outfile
2021/3/21
5
C语言大学实用教程
10.2 文件
计算机的内存容易健忘,所以数据必须保存在 硬盘、软盘、光盘和磁带等“不健忘”的外存 上
这些能大量、永久保存信息的媒介,一般都以 文件的形式给用户及应用程序使用
打开 处理 关闭
2021/3/21
10
C语言大学实用教程
文件类型指针
文件结构体——FILE
typedef struct { int _fd; //文件号
int _cleft; //缓冲区中剩下的字符数 int _mode; //文件操作方式 char *_next; //文件当前读写位置 char *_buff; //文件缓冲区位置
文件
一般指存储在外部介质上具有名字(文件名)的 一组相关数据的集合 用文件可长期保存数据,并实现数据共享
程序中的文件
在程序运行时由程序在磁盘上建立一个文件,并 通过写操作将数据存入该文件;或由程序打开磁 202盘1/3/2上1 的某个已有文件,并通过读操作将文件中的6
C语言大学实用教程
文件与流
在C语言中,文件可以是磁盘文件、终端显示 器或打印机等等。
一般情况,标准输入就是键盘,标准输出就是终端显 示器
操作系统有能力重定向标准输入与输出,比如让文 件作为标准输入,打印机作为标准输出 这种重定向程序本身是感觉不到的
自来水厂
2021/3/21
4
C语言大学实用教程
DOS下的标准输入输出重定向
程序prog如下
main() {
char c; while ((c=getchar()) != '\n')
函数原型: int fclose(FILE *fp)
功能:关闭fp指向的文件
返回值: 正常关闭为0;出错时,非0
注意:文件用完一定关闭,否则将出现如下问题
}FILE;
由系统定义的名为FILE的结构体描述
2021/3/21
11
C语言大学实用教程
文件类型指针
FILE *变量名; (FILE定义在stdio.h中)
文件类型指针的用法:
1、文件打开时
系统自动建立文件结构体,并把指向它的指针返 回,程序通过这个指针获得文件信息,访问文件。
2、文件关闭后
文件结构体被释放。
“ab” “rb+”
对应二进制文件
“wb+”
“ab+”
2021/3/21
14
C语言大学实用教程
例 FILE *fp; fp= fopen ("c:\\f\\b\\test.dat", "r");
例 FILE *fp; char *filename="c:\\f\\b\\test.dat" fp= fopen(filename, "r");
“r” 只读 “w” 只写 “a” 追加 “r+” 读写 “w+” 读写 “a+” 读写
对应文本文件
必须是已存在的文件。 不论该文件是否存在,都新建一个文件。 向文本文件尾增加数据,该文件必须存在 打开一个已存在的文件,用于读写。 建立一个新文件,可读可写。 向文件尾追加数据,也可读。
“rb”
“wb”
文本文件/ASCII码文件
是一种字符序列 文件中存储每个字符的ASCII码 如整数127在文件中占3个字节,分别存放这3 个字符的ASCII码,即49,50,55
数据必须按照存入的类型读出,才能恢复其本来的面貌
2021/3/21
9
C语言大学实用教程源自文库
10.3 基本文件操作
无专门的语句,利用库函数对文件进行操作 对文件进行操作的步骤:
例 文件打开与测试
FILE *fp;
fp=fopen("aa.c", "w");
if(fp==NULL)
{ printf("File open error!\n");
exit(0); }
2021/3/21
15
C语言大学实用教程
文件的关闭
作用: 文件指针变量与文件“脱钩”,释放文 件结构体和文件指针。
Software TC20 WinZip
Backup main.c
E:
8
C语言大学实用教程
文件的格式
二进制文件
是一种字节序列,没有字符变换 按照数据在内存中的存储形式存储到文件 如整数127,在内存占2个字节,为 0000000001111111,则文件中也存储为 0000000001111111,占2个字节
7
C语言大学实用教程
文件的存放
可以建立若干目录(文件 夹),在目录里保存文件, 同一级目录里保存的文件不 能同名。
对使用者而言,只要知道文 件的路径(全目录)和文件 名,就能使用该文件
C:\home\Sunner\main.c
2021/3/21
A: C: D:
home Sunner Secrets getnum.h getnum.c main.c 苏小红
程序通过打开操作把流与设备联系起来,文 件打开后,可以在程序和文件之间交换数据
程序通过关闭操作断开流与文件的联系。
所有流的性质都一样。因为流与设备无关, 所以能写入磁盘文件的同一函数也能写入另 一设备,如控制台终端等。
但文件的能力则可能不同。例如,磁盘文件
可以支持随机存取,而键盘则不行。
2021/3/21
C语言大学实用教程
第10章 文件操作
2021/3/21
1
C语言大学实用教程
第10章 文件操作
本章主要教学内容 流(难点) 文件操作
2021/3/21
2
C语言大学实用教程
10.1 问题的提出
水流
计算机中的流的概念
一般称为数据流,也有叫做字节流、比特流的, 还有很具体的文件流、视频流、音频流等
时光不能倒流,但计算机中的很多流都是会 倒流的
2021/3/21
12
C语言大学实用教程
文件的打开
函数原型:
使用文件方式
FILE *fopen(char *name,char *mode)
功能:按指定方式打要开打文开的件文件名
返回值: 正常打开—— 指向文件结构体的指针 打开失败—— 为NULL
2021/3/21
13
C语言大学实用教程
mode:
如果你想重新读已经读过的数据,或者要修改已 经写入的数据,可以发出流控命令
不会倒流的数据流也很多,例如网络上的数据流。
网络和数据线等介质只有很小的数据缓冲区,没
有大量存储的能力
2021/3/21
3
C语言大学实用教程
标准输入输出
字符界面的操作系统一般都提供标准输入与输出设备 DOS、Linux、Unix……
相关文档
最新文档