文档详情

关于文件如何使用的基本知识精要.ppt

发布:2017-03-22约字共23页下载文档
文本预览下载声明
文件 什么是文件 存储在外部存储器中具有名字的一组相关数据的集合。 数据保存在文件中可以: 1、使程序和文件分离; 2、使数据可以共享; 3、数据可以长期保存; 数据在文件中可以是二进制形式或文本形式。 二进制文件和文本文件 文件类型指针 文件信息保存在一个结构体变量中,该结构体类型是由系统定义,取名为FILE 在stdio.h文件中声明了以下文件类型: typedef struct { short level; unsigned flags; char fd;//文件描述符 ...... 其它部分 }FILE; 文件的打开与关闭 二、打开一个文件: fp=fopen(filename,使用文件方式); 如: if((fp=fopen(“file1”,”r”))==NULL) { printf(“cannot open this file\n”); exit(0); } 三、文件使用完后应关闭: fclose(文件指针); 如: fclose(fp); 一、定义文件指针: FILE * fp; 文件的路径 filename是文件名: filename可以包括文件的路径,也可以没有,如果没有则打开的是当前目录下的文件; 路径的 正确/错误 写法: 文件使用方式 文件使用方式: r 只读方式打开一个已存在的文本文件 w 只写,不论是否存在,新建一个文本文件 a 向文本文件尾追加数据,文件必须已存在 rb 二进制文件 wb 二进制文件 ab 二进制文件 r+ 读/写方式打开一个已存在文本文件 w+ 读/写方式新建一个文本文件 a+ 为读/写方式打开一个文本文件 rb+ 为读/写方式打开一个二进制文件 wb+ 为读/写方式新建一个二进制文件 ab+ 为读/写方式打开一个二进制文件 方式一:按格式读写文件,案例 fprintf(stream,%s\t%ld\t%f\t%c,a_string,65000,3.14159,x); 按格式读文件: 按格式写文件: fscanf(stream,%s\t,s); fscanf(stream,%ld\t,l); fscanf(stream,%f\t,f); fscanf(stream,%c\t,c); 方式二:按字符读写文件(1) 方式二:按字符读写文件(2) 例:从键盘键入一字符串,并转存到磁盘 文件中 例:从文件中读一字符串,输出到屏幕上。 ch=fgetc(fp); while(!feof(fp)) { putchar(ch); ch=fgetc(fp); } 方式二:按字符读写文件(3) while((ch=fgetc(fp))!=EOF) { putchar(ch); } 该循环可用下列代码代替: feof(fp) 当文件位置指针指向fp末尾时,返回非0值,否则返回0值。 方式三:按行读写文件(1) 按字符串(行)写文件: 方式三:按行读写文件(2) 按字符串行读文件: 方式三:按行读写文件(3) 方式三:按行读写文件—案例 按行读写文件--从键盘键入一字符串,存储到磁盘 文件中. 按行读写文件--从文件中读一字符串,输出到屏幕上。 前例中,如果将str的大小改为8,输入”Hello world!”,试观察程序运行过程。. 将程序作如下改变:fgets(str,sizeof(str),stdin);这里程序不会报错,但只能写8个字符到文件中。 方式四:按数据块读写文件 fread函数和fwrite函数可以用来读写一个语句块. fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); buffer:是一个指针,对fread来说,它是读入数据的存放地址.对fwrite来说,是要输出数据的地址(以上是起始地址). size:要读写的字节数. count:要进行读写多少个size字节的数据项. fp:文件型指针. 方式四:按数据块读写文件—案例 例:按数据块写文件。运行程序,并输入如下4组数据: 例:按数据块读文件。运行程序,则输出如下4组数据: 方式五:文件的随机读写--rewind函数 rewind函数的作用是使位置指针重新回到文件的开关。此函数没有返回值。 #include stdlib.h #include stdio.h int main( ) { FILE *fp1,*fp2; int ch; fp1=fopen(d:\\file1.txt,r);
显示全部
相似文档