1、rewind

  1. void rewind(FILE *filepointer);

将filepointer所指向的文件读写位置指针重新置回到文件首部。

2、seek

  1. int fseek(FILE *filepointer, long offset, int whence);

将filepointer所指向的文件读写位置移动到特定位置。即:将指针移动到whence的offset字节处。

whence的常量值 数值 含义
SEEK_SET 0 文件开始处
SEEK_CUR 1 文件位置指针的当前位置
SEEK_END 2 文件的末尾

如果offset为正,新位置在whence后面,offset为负,新位置在whence前面。

3、ftell

  1. long ftell(FILE *filepointer);

返回filepointer所指向的文件的当前读写位置指针的值。用相对文件开头位置偏移量表示。

4、示例代码

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <memory.h>
  4. typedef struct {
  5. char no[9];
  6. char name[10];
  7. char sex;
  8. int age;
  9. char address[20];
  10. }StudentInfo;
  11. char *filename = "student.dat";
  12. int main(int argc, char *argv[]) {
  13. FILE *fp;
  14. char ch1[20] = "zack", ch2[20] = "atom";
  15. fp = fopen(filename, "w+");
  16. if(fp == NULL){
  17. printf("can not create file: %s\n", filename);
  18. exit(0);
  19. }
  20. fprintf(fp, "%s,%s", ch1, ch2);
  21. rewind(fp);
  22. fgets(ch1, 20, fp);
  23. printf("%s\t%s\n", ch1, ch2);
  24. fclose(fp);
  25. return 0;
  26. }