安亭网站建设,电子科技企业网站建设,董明珠营收1500亿,专业维护网站的公司目录 一、fseek函数讲解
二、fseek函数实战 一、fseek函数讲解 重定向文件内部的指针 注#xff1a;光标 ---- 文件内部的指针
函数原型#xff1a;
int fseek(FILE *stream,long offset,int framewhere)
参数#xff1a; stream#xff1a;文件指针offset#xff1a;…目录 一、fseek函数讲解
二、fseek函数实战 一、fseek函数讲解 重定向文件内部的指针 注光标 ---- 文件内部的指针
函数原型
int fseek(FILE *stream,long offset,int framewhere)
参数 stream文件指针offset指针的偏移量framewhere指针偏移起始位置返回值重定位成功返回0否则返回非零
需要注意的是该函数不是重定位文件指针而是重定位文件内部的指针让指向文件内部数据的指针移到文件中我们感兴趣的数据上重定位主要是这个目的。
说明执行成功则stream指向fromwhere为基准偏移offset个字节的位置。执行失败比方说offset偏移的位置超出了文件大小则保留原来的stream的位置不变
分别用3个宏
SEEK_SET 即0 文件开头SEEK_CUR 即1 文件当前位置SEEK_END 即2 文件末尾
但不推荐用数字最好用宏简言之
fseek(fp,100L,SEEK_SET);把fp指针移动到离文件开头100字节处fseek(fp,100L,SEEK_CUR);把fp指针移动到离文件当前位置100字节处fseek(fp,100L,SEEK_END);把fp指针退回到离文件结尾100字节处
二、fseek函数实战 执行流程代码内容
源代码
#include stdio.h
#include string.h
int main()
{FILE *fp NULL;int nRet 0;char readBuff[12];memset(readBuff,0,12);char* writeBuff hello world!;fp fopen(mm,r);//rif(fp NULL){printf(open failed!\n);return -1;}printf(open success1\n);nRet fread(readBuff,4,2,fp);if(nRet 0){printf(fread failed!\n);return -3;}printf(read %s\n,readBuff);nRet fseek(fp,1,SEEK_SET);if(nRet ! 0){printf(fseek failed!);return -4;}printf(fseek succeess!\n);nRet fwrite(writeBuff,4,1,fp);if(nRet 0){printf(fwrite failed!);return -4;}printf(fwrite success!\n);nRet fclose(fp);if(nRet ! 0){printf(close failed!\n);return -2;}printf(close success1\n);return 0;
}