下载此文档

数据的永久存储--文件程序设计【PPT课件】.ppt


文档分类:IT计算机 | 页数:约64页 举报非法文档有奖
1/64
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/64 下载此文档
文档列表 文档介绍
高级语言程序设计
第9章 数据的永久存储
—文件程序设计
福建工程学院 鲍春波
引言
到现在为止,我们所写的程序,不管是输入的原始数据,还是中间计算结果或最终计算结果,在程序运行结束退出后,就都无影无踪了。
你的原始数据输入也不是直接写到外存
ANSI C 的缓冲文件系统
编译器自动地在内存区为每一个正在使用的文件开辟一个文件缓冲区。
程序员只和缓冲区打交道
从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。
从磁盘向内存输入数据,则从磁盘文件将一批数据先输入到内存缓冲区,装满缓冲区后再从缓冲区逐个地将数据送到程序数据区给程序变量。
缓冲区是内存中的一块区域,要对它进行读写,首先应该获得它的地址,这就是文件指针FILE *
也就是在进行文件操作之前必须先定义一个文件指针,如
FILE *infile,*outfile,*fp;
三个特殊的文件指针:
标准输入(键盘也被认为是一个文件流)stdin,
标准输出(显示器也被认为是一个文件流)stdout,
标准错误(错误输出认为是一个文件流)stderr。
打开文件
设 FILE *fp;
ANSI C的打开文件函数fopen为
fp = fopen(“文件名”,文件的打开方式);
如果fopen打开成功,返回一个不为NULL的FILE指针,打开不成功则返回一个NULL指针
其中文件名可以是绝对路径格式或相对路径格式
文本文件的打开方式
“r” :打开一个已存在的文本文件,用于输入。
“w”: 建立一个新的或覆盖一个已存在的文本文件,用于输出。
“a”: 建立一个新文本文件或以追加的方式打开一个已经存在的文本文件,用于输出。
“r+”: 打开一个已经存在的文本文件用于更新(意思是:既可以读又可以写)。
“w+”: 建立一个新的文本文件或覆盖一个已经存在的文本文件,用于更新。 “a+”: 建立一个新的文本文件或以追加的方式打开一个已存在的文本文件,用于更新。
二进制文件的打开方式
与文本文件的6种打开方式类似,只需在打开方式字符串中加入一个字符b
“rb”、“wb” 、“ab”
“rb+”、“wb+” 、“ab+”
其意义与文本文件的打开方式完全相同
注意:
用“w”、“w+”或“wb”、“wb+”方式打开一个文件时,如果文件已经存在,将覆盖已有的文件。
文件关闭
fclose(fp);
典型的文件建立代码(对应4个基本步骤)
FILE *fp;
if( (fp=fopen(“”,“r”) ) == NULL) { printf(“Cannot open file, strike any key exit ! ”); getch();    exit(1); }
//文件读写……
fclose(fp);
ANSI C的文件操作函数
字符读写函数
int fgetc(FILE *fp);
int fputc(int c, FILE *fp);
或者宏
int getc(FILE *fp);
int putc(int c, FILE *fp);
每次读写一个字符
例1:写一个程序把一个源程序文件做一个备份
可以把源程序看成是一个字符序列,采用字符读写方式即可实现
FILE *fp;

思考题
用命令行参数提供输入输出文件名,实现文件的拷贝命令
copyfile file1 file2
字符串读写
char *fgets(char *s, int n, FILE *fp);
从文件中读出n-1字符,存到s指向的字符数组中
int fputs(const char *s, FILE *fp);
例2:从文件中读一个含10个字符的字符串
使用fgets(str,11,fp)从fp指向的文件中读出n-1个字符送入字符数组str中, 末尾会自动加上'\0'。

例3 在文件中追加一个字符串
使用 fputs(“abcd”,fp)函数把字符串"abcd"写入fp所指的文件之中

格式化读写(文本文件)
int fscanf(FILE *fp, const char *format, ...);
int fprintf(FILE *fp, const char *format, ...);
按照某种格式对一组数据进行读写,常用于文本文件的读写
不能看出:当fp = stdin

数据的永久存储--文件程序设计【PPT课件】 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数64
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yzhlya
  • 文件大小644 KB
  • 时间2022-06-08
最近更新