C语言文件常用操作

来源:互联网 发布:网络推广是做什么的 编辑:程序博客网 时间:2024/06/16 19:39

FILE *fp//定义一个文件类型指针

1.fopen函数

fopen函数是在当前目录下打开一个文件,其调用的一般形式为:

文件指针名=fopen(文件名,使用文件方式);

eg:fp=fopen("a1","rb+");

“文件指针名”必须是被说明为FILE 类型的指针变量

“文件名”是被打开文件的文件名;

“使用文件方式”是指文件的类型和操作要求;

“文件名”是字符串常量或字符数组

使用文件的方式:



2.fclose函数

关闭文件函数,这个函数用法很简单,用完fwrite()和fread()函数用就行

fclose(fp);

返回值:如果流成功关闭,fclose 返回 0,否则返回EOF(-1);

3.fwrite函数

功能是向指定的文件中写入若干数据块

fwrite(buffer,size,count,fp);

(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;

(2)size:要写入内容的单字节数;(可以见实例,下方代码)(一般用sizeof())

(3)count:要进行写入size字节的数据项的个数;

(4)fp:目标文件指针

4.fread函数

fread(buffer,size,count,fp);

(1)buffer:是一个指针,对fread来说,它是用来存放从文件读入的数据的存储区的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)fp:目标文件指针;
5.fseek函数
改变文件位置标记
fseek(fp,位移量,起始点)
第一个参数为文件指针
第二个参数为偏移量,正数表示正向偏移,负数表示负向偏移
第三个参数设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.
简言之:
fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;
fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;
fseek(fp,-100L,2);把fp指针退回到离文件结尾100字节处。
下面附上一段实例代码:
#include<stdio.h>struct node{int x;char a[10];};int main(){node t[3]={{2,"abc"},{3,"ksdf"},{4,"skajhf"}},tt[3],ttt={10,"zzzz"};FILE *fp;fp=fopen("wenbo.txt","wb");//建立一个文件 fwrite(t,sizeof(node),3,fp);//向文件中写入内容 fclose(fp);fp=fopen("wenbo.txt","rb");fread(tt,sizeof(node),3,fp);//读取文件内容 fclose(fp);for(int i=0;i<3;i++){printf("%d %s\n",tt[i].x,tt[i].a);//输出 }fp=fopen("wenbo.txt","rb+");printf("%d\n",sizeof(node));fseek(fp,-(long)sizeof(node),SEEK_END);//更换指针位置  fwrite(&ttt,sizeof(node),1,fp);//更换指针所指位置数据 fclose(fp);//要关闭 fp=fopen("wenbo.txt","rb");fread(tt,sizeof(node),3,fp);fclose(fp);for(int i=0;i<3;i++){printf("%d %s\n",tt[i].x,tt[i].a);}}


原创粉丝点击