首先,先介绍两个对C语言文件操作的函数
fseek函数,用来根据文件指针的位置和偏移量来定位文件指针
int fseek(FILE* stream, long int offset, int origin);
offset表示偏移量.
这里的origin参数一般有三种情况
1.SEEK_CUR,表示文件指针的当前位置(也可用1来表示)
2.SEEK_SET,表示文件指针的开始位置(也可用0来表示)
3.SEEK_END,表示文件指针的末尾位置(也可用2来表示)
ftell函数,这个函数可以将指针相对于起始位置的偏移量作为返回值.
通过这两个函数我们可以有一个计算文件大小的思路,先用fseek函数将文件指针放在文件的末尾.
fseek(fpr, 0, 2); //文件指针放在距离文件末尾0偏移量处
n = ftell(fpr); //返回文件指针相对于起始位置的偏移量.
完整代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//int fseek(FILE* stream, long int offset, int origin);
//fseek根据文件指针的位置和偏移量来定位文件指针
//long int ftell(FILE* stream);
//返回文件指针相对于起始位置的偏移量
int main(){
FILE* fpr = NULL;
int n;
fpr = fopen("C:\\Users\\lenovo\\Desktop\\1.txt", "r");
if (fpr == NULL){
printf("open fail!\n");
}
fseek(fpr, 0, SEEK_END); //文件指针放在文件末尾
n = ftell(fpr);
printf("%d\n", n);
fclose(fpr);
fpr = NULL;
system("pause");
return 0;
}