1、rewind
void rewind(FILE *filepointer);
将filepointer所指向的文件读写位置指针重新置回到文件首部。
2、seek
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
long ftell(FILE *filepointer);
返回filepointer所指向的文件的当前读写位置指针的值。用相对文件开头位置偏移量表示。
4、示例代码
#include <stdio.h>#include <stdlib.h>#include <memory.h>typedef struct {char no[9];char name[10];char sex;int age;char address[20];}StudentInfo;char *filename = "student.dat";int main(int argc, char *argv[]) {FILE *fp;char ch1[20] = "zack", ch2[20] = "atom";fp = fopen(filename, "w+");if(fp == NULL){printf("can not create file: %s\n", filename);exit(0);}fprintf(fp, "%s,%s", ch1, ch2);rewind(fp);fgets(ch1, 20, fp);printf("%s\t%s\n", ch1, ch2);fclose(fp);return 0;}
