要实现在C语言中二进制读写文件,可以使用以下步骤:
-
打开文件:使用
fopen
函数打开文件,指定文件名和打开模式为二进制模式(例如"rb"表示以二进制只读方式打开文件,"wb"表示以二进制写入方式打开文件)。 -
读取文件:使用
fread
函数从文件中读取数据。该函数的参数包括一个指向保存数据的内存块的指针、每个数据项的大小、数据项的个数以及文件指针。 -
写入文件:使用
fwrite
函数将数据写入文件。该函数的参数包括一个指向要写入的数据的内存块的指针、每个数据项的大小、数据项的个数以及文件指针。 -
关闭文件:使用
fclose
函数关闭文件。
下面是一个示例代码,演示了如何读取一个二进制文件并将其内容写入另一个二进制文件:
#include#define BUFFER_SIZE 1024 int main() { FILE *inputFile, *outputFile; unsigned char buffer[BUFFER_SIZE]; size_t bytesRead; // 打开输入文件(以二进制只读方式) inputFile = fopen("input.bin", "rb"); if (inputFile == NULL) { printf("无法打开输入文件\n"); return 1; } // 打开输出文件(以二进制写入方式) outputFile = fopen("output.bin", "wb"); if (outputFile == NULL) { printf("无法打开输出文件\n"); fclose(inputFile); return 1; } // 从输入文件读取数据并写入输出文件 while ((bytesRead = fread(buffer, 1, BUFFER_SIZE, inputFile)) > 0) { fwrite(buffer, 1, bytesRead, outputFile); } // 关闭文件 fclose(inputFile); fclose(outputFile); printf("文件读写完成\n"); return 0; }
上述代码中,首先使用fopen
函数打开输入文件和输出文件。然后,使用fread
函数从输入文件读取数据并将其存储在缓冲区中,随后使用fwrite
函数将缓冲区中的数据写入输出文件。最后,使用fclose
函数关闭文件。
请注意,示例代码中使用了一个缓冲区来暂存读取的数据,以便一次性读取和写入多个数据项,从而提高效率。你可以根据需要调整缓冲区的大小。