首页  > 教育解读  > c语言如何将文本文件原样保存为二进制文件

c语言如何将文本文件原样保存为二进制文件

2025-05-10 15:07:29
起航
起航已认证

起航为您分享以下优质知识

在C语言中,将文本文件原样保存为二进制文件可以通过以下步骤实现:

打开文件 :使用`fopen`函数以二进制模式打开源文件和目标文件。

读取数据:

使用`fread`函数按二进制方式读取源文件内容。

写入数据:

使用`fwrite`函数将读取的数据原样写入目标文件。

关闭文件:

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

以下是一个完整的示例代码,展示了如何将文本文件原样保存为二进制文件:

```c

include

int main() {

FILE *sourceFile, *binaryFile;

char buffer;

size_t bytesRead;

// 以二进制模式打开源文件和目标文件

sourceFile = fopen("source.txt", "rb");

binaryFile = fopen("binary_file.bin", "wb");

// 检查文件是否成功打开

if (sourceFile == NULL || binaryFile == NULL) {

perror("文件打开失败");

return 1;

}

// 读取源文件内容并写入目标文件

while ((bytesRead = fread(buffer, 1, sizeof(buffer), sourceFile)) >

0) {

if (fwrite(buffer, 1, bytesRead, binaryFile) != bytesRead) {

perror("文件写入失败");

fclose(sourceFile);

fclose(binaryFile);

return 1;

}

}

// 检查读取是否结束(EOF)

if (ferror(sourceFile)) {

perror("文件读取失败");

fclose(sourceFile);

fclose(binaryFile);

return 1;

}

// 关闭文件

fclose(sourceFile);

fclose(binaryFile);

printf("文件转换成功!n");

return 0;

}

```

代码说明:

文件打开

- `sourceFile = fopen("source.txt", "rb");` 以二进制读取模式打开源文件。

- `binaryFile = fopen("binary_file.bin", "wb");` 以二进制写入模式打开目标文件。

文件读写

- 使用`fread`函数按二进制方式读取源文件内容到缓冲区`buffer`中。

- 使用`fwrite`函数将缓冲区内容原样写入目标文件。

错误处理

- 检查文件是否成功打开,以及读写操作是否成功。

- 使用`ferror`函数检测读取错误。

关闭文件

- 使用`fclose`函数关闭源文件和目标文件。

注意事项:

该方法会保留源文件的所有二进制数据,包括空格、换行符等特殊字符。

如果源文件较大,建议使用动态内存分配(如`malloc`)来处理大文件,避免栈溢出。

通过这种方式,文本文件的内容会被原样转换为二进制文件,且不会改变其格式或内容。