void rewind ( FILE *fp );fseek() 用来将位置指针移动到任意位置,它的原型为:
int fseek ( FILE *fp, long offset, int origin );参数说明:
起始点 | 常量名 | 常量值 |
---|---|---|
文件开头 | SEEK_SET | 0 |
当前位置 | SEEK_CUR | 1 |
文件末尾 | SEEK_END | 2 |
例如,把位置指针移动到离文件开头100个字节处:
fseek(fp, 100, 0);值得说明的是,fseek() 一般用于二进制文件,在文本文件中由于要进行转换,计算的位置有时会出错。
#include<stdio.h> #define N 3 struct stu{ char name[10]; //姓名 int num; //学号 int age; //年龄 float score; //成绩 }boys[N], boy, *pboys; int main(){ FILE *fp; int i; pboys = boys; if( (fp=fopen("d:\\demo.txt", "wb+")) == NULL ){ printf("Cannot open file, press any key to exit!\n"); getch(); exit(1); } printf("Input data:\n"); for(i=0; i<N; i++,pboys++){ scanf("%s %d %d %f", pboys->name, &pboys->num, &pboys->age, &pboys->score); } fwrite(boys, sizeof(struct stu), N, fp); //写入三条学生信息 fseek(fp, sizeof(struct stu), SEEK_SET); //移动位置指针 fread(&boy, sizeof(struct stu), 1, fp); //读取一条学生信息 printf("%s %d %d %f\n", boy.name, boy.num, boy.age, boy.score); fclose(fp); return 0; }运行结果:
本文链接:http://task.lmcjl.com/news/8408.html