c语言,按字节 读取文件
时间: 2023-07-18 07:21:51 浏览: 290
在C语言中,可以使用fread()函数按字节读取文件。fread()函数的原型如下:
```c
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
```
该函数从stream所指向的文件中读取count个数据项,每个数据项的大小为size字节,将读取的数据存储到ptr所指向的内存中。函数返回实际读取的数据项个数,如果出错或读到文件结尾,返回值可能小于count。
例如,以下代码可以按字节读取文件:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("test.txt", "rb"); // 以二进制只读方式打开test.txt文件
if (fp == NULL) { // 打开文件失败
printf("Failed to open file.\n");
return 1;
}
char buffer[10]; // 读取数据的缓冲区
size_t read_size = 0; // 实际读取的数据量
while ((read_size = fread(buffer, sizeof(char), 10, fp)) > 0) { // 每次读取10个字节
for (int i = 0; i < read_size; ++i) { // 打印读取到的每个字节
printf("%02x ", (unsigned char)buffer[i]);
}
printf("\n");
}
fclose(fp); // 关闭文件
return 0;
}
```
该程序先以二进制只读方式打开test.txt文件,然后每次从文件中读取10个字节,将读取到的字节存储在buffer数组中,并打印每个字节的十六进制表示。最后关闭文件并退出程序。
阅读全文