fopen、fread、fwrite、fclose、fseek、feof、ftell的用法简介

fdopen的用法

除可指定打开的文件、模式外,还可指定特定的I/O流。


其中,mode定义打开文件的访问权限等

 

fclose的用法

该函数将缓冲区内的数据全部写入到文件中,并释放系统所提供的文件资源

 

fread的用法

在文件流被打开之后,可对文件流进行读写等操作,其中读操作的函数为fread()

 

fwrite的用法

该函数是用于对指定的文件流进行写操作

 

fseek的用法:

功 能:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。

 

int fseek( FILE*stream, long offset, int origin );

  第一个参数stream为文件指针

  第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移

  第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_SET: 文件开头

SEEK_CUR: 当前位置

SEEK_END: 文件结尾

 

fseek(fp,100L,SEEK_SET);fp指针移离文件100字节处;
    fseek(fp,100L,SEEK_CUR);fp指针移离文件前位置100字节处;
    fseek(fp,100L,SEEK_END);fp指针退离文件结尾100字节处
    int filesize = fseek( fp, 0, SEEK_END);  //计算文件长度

 

ftell的用法:

功 能:返回当前文件指针(注意:返回的是文件的指针,指向第几个字节)

用 法:long ftell(FILE *stream);

 

feof的用法:

原型:int feof(FILE *stream)

功能:判断文件是否结束,返回值为0时表示还没有结束,否则结束!


实例:文本文件复制

#include <stdio.h>
int main()
{	
	char buffer[10];
	FILE *fp=fopen("./11.txt","r+");
	FILE *fp1=fopen("./22.txt","w+");
	int len;	

	if(fp==NULL||fp1==NULL)
	{
		perror("Failed to open src.txt");
		return -1;
	}
	printf("file is ok\n");
	
	fseek(fp,5,SEEK_SET);
	printf("this file point at %ld \n",ftell(fp));

	if(feof(fp)==0)
		printf("file is excuted\n");
	else
		printf("file is end\n");

	while((len=fread(buffer, 1,10, fp))>0){
		fwrite(buffer,1,len,fp1);
	}
	fclose(fp);
	fclose(fp1);

	if(feof(fp)==0)
		printf("file is excuted\n");
	else
		printf("file is end\n");
	
}




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值