fread读取得文件字节数不对
时间: 2023-07-30 11:06:50 浏览: 125
swfile.rar_fread text_fread 二进制_二进制文件_读写文件
`fread` 函数返回的是实际读取的元素个数,而不是读取的字节数。因此,需要将实际读取的元素个数乘以每个元素的大小,才能得到读取的字节数。
修改示例代码如下:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[1024];
// 打开文件
fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("无法打开文件!\n");
return 1;
}
// 读取文件内容
size_t read_count;
while ((read_count = fread(buffer, sizeof(char), sizeof(buffer), fp)) > 0) {
// 输出读取的字节数
printf("读取了 %lu 字节\n", read_count * sizeof(char));
// 输出读取的内容
printf("%s", buffer);
}
// 关闭文件
fclose(fp);
return 0;
}
```
上述代码中,使用 `size_t` 类型的变量 `read_count` 来保存实际读取的元素个数,然后在循环中计算出实际读取的字节数,并输出到控制台。
阅读全文