×

fseek fseek函数 函数

fseek函数?matlab中random函数的用法

admin admin 发表于2022-05-17 17:17:33 浏览178 评论0

抢沙发发表评论

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

matlab中random函数的用法


Y = randn(n),返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。 

Y = randn(m,n) 或 Y = randn([m n]),返回一个m*n的随机项矩阵。

Y = randn(m,n,p,...) 或 Y = randn([m n p...]),产生随机数组(感觉就是三维数组,请看如下例子)。

扩展资料:

举例分析

产生一个随机分布的指定均值和方差的矩阵:将randn产生的结果乘以标准差,然后加上期望均值即可。例如,产生均值为0.6,方差为0.1的一个5*5的随机数方式如下:

1: x = .6 + sqrt(0.1) * randn(5)

其他类似函数:rand, randperm, sprand, sprandn


c语言中strlen是什么意思


strlen:计算字符串长度的库函数名。

str:通常,程序员喜欢用它作 字符串 变量名。它是string(英文词字符串的缩写)。

len:通常,程序员喜欢用它作 变量名。它是 length(英文词长度的缩写)。

例如:

char str=“I am a student“;

int len;

len = strlen(str);

printf(“the string length is: %d“,len);

扩展资料:

函数原型

extern unsigned int strlen(char *s);

在Visual C++ 6.0或Dev-C++中,原型为size_t strlen(const char *string);,其中size_t实际上是unsigned int,在VC6.0或Dev-C++中可以看到这样的代码:-fseek

typedef unsigned int size_t;

头文件:string.h或cstring

格式:strlen (字符指针表达式)

功能:计算给定字符串的(unsigned int型)长度,不包括’\0’在内

说明:返回s的长度,不包括结束符NULL。

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’\0’停止。

参考资料来源:百度百科-strlen (C/C++语言函数)