//文件函数再讲 //fseek(),ftell(), #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void main(){ //定义文件路径 char *path = "E:\Look\b1.txt";//仅支持window char *path1 = "E:/Look/b1.txt";//支持window和linux //定义文件指针 FILE *pf = NULL; //以读写方式打开文件 pf = fopen(path1,"r+"); //判断文件是否打开成功 if (pf==NULL) { printf("文件打开失败! 文件路径是%s ",path1); } //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); 把stream指针移动到离文件开头100字节处; //fseek(fp, 100L, 1); 把stream指针移动到离文件当前位置100字节处; //fseek(fp, -100L, 2); 把stream指针退回到离文件结尾100字节处。 char buf[100] = {0}; fgets(buf, 100, pf); printf("输出结果%s ", buf); //将文件指针移动到文件末尾 fseek(pf, 0L, SEEK_END); //计算出文件指针偏移量(本质上就是文件的大小) int num = ftell(pf); //函数名:ftell //函数原型:long ftell(FILE *stream); //函数功能 //用于得到文件位置指针当前位置相对于文件首的偏移字节数。(使用fseek函数后再调用函数ftell()就能非常容易地确定文件的当前位置。) //约束条件 //因为ftell返回long型,根据long型的取值范围 - 231~231 - 1( - 2147483648~2147483647),故对大于2.1G的文件进行操作时出错。 printf("文件的大小%d个字节 ", num); //关闭文件 if (pf!=NULL) { fclose(pf); } system("pause"); }