我有我想寫(實際追加)兩者中的二進制文件,使我得到的結果1,2,3,4,5,6,7,8,9,10
兩個數組。我下面的代碼只做第一部分,但它並不追加第二部分:追加兩個數組到一個單一的二進制文件
FILE *fp;
int sum1[5]={1,2,3,4,5};
int sum2[10]={6,7,8,9,10};
int sum[10]={0};
int i;
// Write the first array sum1
fp = fopen("test.bin","wb");
fwrite(sum1, sizeof(int), 5, fp);
fclose(fp);
// Write (append) the second array sum2 at the end of test.bin file
fp = fopen("test.bin","rb");
fseek(fp, 5, SEEK_SET);
fwrite(sum2, sizeof(int), 5, fp);
fclose(fp);
// Show the result if both sum1 and sum2 are merged.
fp = fopen("test.bin","rb");
fread(sum, sizeof(int), 10, fp);
for (i = 0; i < 10; ++i) {
printf("%d, ", sum[i]);
}
printf("\n");
fclose(fp);
結果是1, 2, 3, 4, 5, 0, 0, 0, 0, 0,
。這不是我想要的。如何修改代碼以反映我的需求?謝謝
非常感謝你.. – Kris
注意檢查'fwrite'上的I/O會顯示它沒有寫任何東西。 –