首页  > 教育解读  > c如何读写二进制打开的文件内容

c如何读写二进制打开的文件内容

2025-05-04 06:07:57
肖老师
肖老师已认证

肖老师为您分享以下优质知识

在C语言中读写二进制文件需要使用标准库函数`fopen`、`fread`、`fwrite`和`fclose`,并注意以二进制模式打开文件。以下是具体操作方法和示例:

一、写入二进制文件

打开文件

使用`fopen`函数以二进制写入模式(模式为`"wb"`)打开文件。若失败则检查指针是否为`NULL`。

写入数据

使用`fwrite`函数将数据写入文件。需指定数据指针、数据类型大小及数量。

关闭文件

使用`fclose`函数关闭文件以释放资源。

示例代码:

```c

include

int main() {

FILE *fp;

int data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

size_t count = sizeof(data);

// 打开文件

fp = fopen("data.bin", "wb");

if (fp == NULL) {

perror("Failed to open file");

return 1;

}

// 写入数据

size_t written = fwrite(data, sizeof(int), count, fp);

if (written != count) {

perror("Failed to write to file");

fclose(fp);

return 1;

}

// 关闭文件

fclose(fp);

return 0;

}

```

二、读取二进制文件

打开文件

使用`fopen`函数以二进制读取模式(模式为`"rb"`)打开文件,并检查是否成功。

读取数据

使用`fread`函数将数据读取到缓冲区。需指定目标指针、数据类型大小及数量。

关闭文件

使用`fclose`函数关闭文件。

示例代码:

```c

include

include

int main() {

FILE *fp;

unsigned char buffer;

size_t bytesRead;

// 打开文件

fp = fopen("data.bin", "rb");

if (fp == NULL) {

perror("Failed to open file");

return 1;

}

// 读取数据

bytesRead = fread(buffer, sizeof(char), sizeof(buffer), fp);

if (bytesRead == 0) {

perror("Failed to read file");

fclose(fp);

return 1;

}

// 关闭文件

fclose(fp);

// 打印读取内容(十六进制表示)

for (size_t i = 0; i < bytesRead; i++) {

printf("%02X ", buffer[i]);

}

printf("n");

return 0;

}

```

三、注意事项

文件模式

- 写入使用`"wb"`,读取使用`"rb"`。

- 任何文件均可以二进制模式打开,无需特殊标志。

错误处理

- 检查`fopen`、`fwrite`的返回值,避免程序崩溃。

- 优先使用`feof()`检测文件结束,而非`fread`返回值。

结构体读写

- 写入结构体时,需确保结构体成员对齐方式与文件格式一致。

- 读取时需按相同结构体类型进行对齐。

通过以上方法,可安全高效地进行二进制文件的读写操作。