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