C语言文件常用操作

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);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值