要實現在C語言中二進制讀寫文件,可以使用以下步驟:
打開文件:使用fopen
函數打開文件,指定文件名和打開模式為二進制模式(例如"rb"表示以二進制只讀方式打開文件,"wb"表示以二進制寫入方式打開文件)。
讀取文件:使用fread
函數從文件中讀取數據。該函數的參數包括一個指向保存數據的內存塊的指針、每個數據項的大小、數據項的個數以及文件指針。
寫入文件:使用fwrite
函數將數據寫入文件。該函數的參數包括一個指向要寫入的數據的內存塊的指針、每個數據項的大小、數據項的個數以及文件指針。
關閉文件:使用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
函數關閉文件。
請注意,示例代碼中使用了一個緩沖區來暫存讀取的數據,以便一次性讀取和寫入多個數據項,從而提高效率。你可以根據需要調整緩沖區的大小。