fseek函数是什么(fseek(f,0,SEEK_SET);)

:暂无数据 2026-06-15 00:30:02 :0

fseek函数是什么(fseek(f,0,SEEK_SET);)

大家好,今天小编来为大家解答以下的问题,关于fseek函数是什么,fseek(f,0,SEEK_SET);这个很多人还不知道,现在让我们一起来看看吧!

本文目录

fseek(f,0,SEEK_SET);

意思是把文件指针指向文件的开头

fseek
函数名: fseek
功 能: 重定位流上的文件指针
用 法: int fseek(FILE *stream, long offset, int fromwhere);
描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值: 成功,返回0,否则返回其他值。
fseek position the file position pointer for the file referenced by stream to the byte location calculated by offset.
程序例:
#include 《stdio.h》
long filesize(FILE *stream);
int main(void)
{
FILE *stream;
stream = fopen(“MYFILE.TXT“, “w+“);
fprintf(stream, “This is a test“);
printf(“Filesize of MYFILE.TXT is %ld bytes\n“, filesize(stream));
fclose(stream);
return 0;
}
long filesize(FILE *stream)
{
long curpos, length;
curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;
}
int fseek( FILE *stream, long offset, int origin );
第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为: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》
#define N 5
typedef struct student {
long sno;
char name;
float score;
} STU;
void fun(char *filename, STU n)
{
FILE *fp;
fp = fopen(filename, “rb+“);
fseek(fp, -1L*sizeof(STU),SEEK_END);
fwrite(&n, sizeof(STU), 1, fp);
fclose(fp);
}
void main()/*修改覆盖最后一个学生数据*/
{
STU t[N]={ {10001,“MaChao“, 91, 92, 77}, {10002,“CaoKai“, 75, 60, 88},
{10003,“LiSi“, 85, 70, 78}, {10004,“FangFang“, 90, 82, 87},
{10005,“ZhangSan“, 95, 80, 88}};
STU n={10006,“ZhaoSi“, 55, 70, 68}, ss[N];
int i,j; FILE *fp;
fp = fopen(“student.dat“, “wb“);
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
fp = fopen(“student.dat“, “rb“);
fread(ss, sizeof(STU), N, fp);
fclose(fp);
printf(“\nThe original data :\n\n“);
for (j=0; j《N; j++)
{
printf(“\nNo: %ld Name: %-8s Scores: “,ss[j].sno, ss[j].name);
for (i=0; i《3; i++) printf(“%6.2f “, ss[j].score[i]);
printf(“\n“);
}
fun(“student.dat“, n);
printf(“\nThe data after modifing :\n\n“);
fp = fopen(“student.dat“, “rb“);
fread(ss, sizeof(STU), N, fp);
fclose(fp);
for (j=0; j《N; j++)
{
printf(“\nNo: %ld Name: %-8s Scores: “,ss[j].sno, ss[j].name);
for (i=0; i《3; i++) printf(“%6.2f “, ss[j].score[i]);
printf(“\n“);
}
}

谁能具体解释下fseek函数

fseek是用来设置文件指针stream的位置的函数。

函数原型:int fseek(FILE *stream, long offset, int fromwhere);

参数:stream 是指向打开文件的指针,fromwhere 基准点,offset以基准点为起始点的偏移量。

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

注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件。

拓展资料:

int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。

如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于2*1024*1024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回一个非0值。

fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。

重定位流(数据流/文件)上的文件内部位置指针。

注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变或指向别的文件。

fseek函数的文件指针,应该为已经打开的文件。如果没有打开的文件,那么将会出现错误。 fseek函数也可以这样理解,相当于在文件当中定位。这样在读取规律性存储文件时可以利用其OFFSET偏移量读取文件上任意的内容。

fseek函数一般用于二进制文件,也可以用于文本文件。用于文本文件操作时,需特别注意回车换行的情况:因为在一般浏览工具如UltraEdit中,回车换行视为两个字符0x0D和0x0A,但真实的文件读写和定位时却按照一个字符0x0A进行处理,因此碰到此类问题时,可以考虑将文件整个读入内存,然后在内存中手工插入0x0D的方法,这样可以达到较好的处理效果。

参考资料:百度百科:fseek

fseek(f, 0, SEEK_CUR)这个函数有什么意义吗

fseek(f, 0, SEEK_CUR); fseek(文件类型指针,位移量,起始点);
-。-起始点处的函数SEEK_SET是文件开始,SEEK_CUR是文件当前的位置,SEEK_END是文件末尾。综合起来就是指定位从当前的位置开始位移0个字节的位置- -、

fseek()函数移动文件指针的时候会移到一个连续内容地方吗

你好,以下是对函数的解释:
fseek函数是用来设定文件的当前读写位置:
函数原型:int
fseek(FILE
*fp,long
offset,int
origin);
函数功能:把fp的文件读写位置指针移到指定的位置.
fseek(fp,20,SEEK_SET);
//意思是把fp文件读写位置指针从文件开始后移20个字节.
指针移动后是成块读取的,不会从中间打断!
(*^__^*)温馨提示(*^__^*)
真心希望你能采纳我的回答,如有不明白
,可以继续追问,若满意,记得及时采纳。

fseek函数

  fseek函数:
  int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。
  如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
  实验得出,超出文件末尾位置,还是返回0。往回偏移超出首位置,返回-1,且指向一个-1的位置,请小心使用。
  fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
  功能:

  重定位流(数据流/文件)上的文件内部位置指针。
  注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件。
  程序例:

  #include 《stdio.h》
  long filesize(FILE*stream);
  int main(void)
  {
  FILE *stream;
  stream=fopen(“MYFILE.TXT“,“w+“);
  fprintf(stream,“Thisisatest“);
  printf(“FilesizeofMYFILE.TXTis%ldbytes\n“,filesize(stream));
  fclose(stream);
  return 0;
  }
  
  long filesize(FILE*stream)
  {
  long curpos,length;
  curpos=ftell(stream);
  fseek(stream,0L,SEEK_END);
  length=ftell(stream);
  fseek(stream,curpos,SEEK_SET);
  return length;
  }
  

  int fseek( FILE *stream, long offset, int origin );
  第一个参数stream为文件指针
  第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移
  第三个参数origin设定从文件的哪里开始偏移,可能取值为: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);把文件内部指针移动到离文件开头100字节处;
  fseek(fp,100L,1);把文件内部指针移动到离文件当前位置100字节处;
  fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。
  使用实例:
  #include《stdio.h》
  #defineN5
  typedefstructstudent{
  longsno;
  charname;
  floatscore;
  }STU;
  
  voidfun(char*filename,STUn)
  {
  FILE*fp;
  fp=fopen(filename,“rb+“);
  fseek(fp,-1L*sizeof(STU),SEEK_END);
  fwrite(&n,sizeof(STU),1,fp);
  fclose(fp);
  }
  
  voidmain()/*修改覆盖最后一个学生数据*/
  {
  STUt[N]={{10001,“MaChao“,91,92,77},{10002,“CaoKai“,75,60,88},
  {10003,“LiSi“,85,70,78},{10004,“FangFang“,90,82,87},
  {10005,“ZhangSan“,95,80,88}};
  STUn={10006,“ZhaoSi“,55,70,68},ss[N];
  inti,j;FILE*fp;
  fp=fopen(“student.dat“,“wb“);
  fwrite(t,sizeof(STU),N,fp);
  fclose(fp);
  fp=fopen(“student.dat“,“rb“);
  fread(ss,sizeof(STU),N,fp);
  fclose(fp);
  printf(“\nTheoriginaldata:\n\n“);
  for(j=0;j《N;j++)
  {
  printf(“\nNo:%ldName:%-8sScores:“,ss[j].sno,ss[j].name);
  for(i=0;i《3;i++)printf(“%6.2f“,ss[j].score[i]);
  printf(“\n“);
  }
  fun(“student.dat“,n);
  printf(“\nThedataaftermodifing:\n\n“);
  fp=fopen(“student.dat“,“rb“);
  fread(ss,sizeof(STU),N,fp);
  fclose(fp);
  for(j=0;j《N;j++)
  {
  printf(“\nNo:%ldName:%-8sScores:“,ss[j].sno,ss[j].name);
  for(i=0;i《3;i++)printf(“%6.2f“,ss[j].score[i]);
  printf(“\n“);
  }
  }
  

关于fseek函数是什么到此分享完毕,希望能帮助到您。

fseek函数是什么(fseek(f,0,SEEK_SET);)

本文编辑:admin

更多文章:


协方差计算公式(协方差的计算公式)

协方差计算公式(协方差的计算公式)

这篇文章给大家聊聊关于协方差计算公式,以及协方差的计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 08:10

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

本篇文章给大家谈谈易语言网页api接口怎么调用,以及易语言,怎么读取网页json的api对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 08:00

majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

mysql 命令(MySQL的基本命令)

mysql 命令(MySQL的基本命令)

大家好,如果您还对mysql 命令不太了解,没有关系,今天就由本站为大家分享mysql 命令的知识,包括MySQL的基本命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 03:00

最近更新

majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
热门文章

标签列表