帮我写一段fseek函数计算文件大小的代码
时间: 2023-05-25 12:06:28 浏览: 92
以下是使用fseek函数计算文件大小的代码:
```
#include <stdio.h>
int main()
{
char filename[] = "example.txt";
FILE *fp = fopen(filename, "rb");
if (fp == NULL) {
printf("Failed to open file: %s\n", filename);
return 1;
}
fseek(fp, 0L, SEEK_END); //将文件指针定位到文件结尾
long int file_size = ftell(fp); //获取文件大小
fclose(fp);
printf("The size of %s is %ld bytes.\n", filename, file_size);
return 0;
}
```
在此代码中,首先我们打开文件 `"example.txt"`,并使用 `"rb"` 模式打开它以读取二进制数据。如果文件打开失败,我们将输出一条错误信息并退出程序。
然后,我们使用 `fseek` 函数将文件指针定位到文件结尾。`fseek` 函数的第一个参数是文件指针,第二个参数是指针移动的偏移量,第三个参数是指定起始点。在这个例子中,第二个参数设置为 0,表示相对于文件结尾偏移量为 0,也就是将文件指针移动到文件结尾。第三个参数设置为 `SEEK_END`,表示起始点为文件结尾。当 `fseek` 函数返回时,文件指针就定位到了文件结尾。
接下来,我们使用 `ftell` 函数获取文件指针的当前位置,也就是文件结尾的位置。这个位置就是文件的大小。
最后,我们输出文件名称和文件大小,并关闭文件。
请注意,在使用 `fseek` 和 `ftell` 函数计算文件大小时,需要使用二进制模式打开文件。因为在文本模式下,有些操作系统可能会自动将某些特殊字符转换为其他字符,这样就会导致文件大小计算错误。因此,为了确保计算的准确性,最好始终使用二进制模式打开文件。
阅读全文