C言語でファイルをバイナリ形式で読み書きする方法。
C言語でバイナリファイルの読み書きを実現するためには、以下の手順を使用することができます:
- ファイルを開く:fopen関数を使用してファイルを開き、ファイル名とオープンモードをバイナリモードに指定します(例えば、”rb”はファイルをバイナリ読み込みモードで開きます。”wb”はファイルをバイナリ書き込みモードで開きます)。
- ファイルの読み込み:ファイルからデータを読み込むために、fread関数を使用します。この関数の引数には、データを格納するメモリブロックへのポインタ、各データ項目のサイズ、データ項目の数、そしてファイルポインタが含まれます。
- ファイルへの書き込み:fwrite関数を使用してデータをファイルに書き込みます。この関数の引数は、書き込むデータへのポインタ、1つのデータ項目のサイズ、データ項目の数、そしてファイルポインタが含まれます。
- ファイルを閉じる際には、fclose関数を使用してください。
以下是一个示例代码,展示了如何从一个二进制文件中读取内容并将其写入另一个二进制文件:
#include <stdio.h>
#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関数を使用してファイルを閉じます。
注意してください、サンプルコードではデータを一時的に保管するバッファが使用されており、複数のデータ項目を一度に読み書きすることで効率を向上させています。必要に応じてバッファのサイズを調整することができます。