2016-05-31 99 views
-4

我必須在C中的二進制文件中寫入n個字節,我該如何編寫它?所有的字節必須是0.在C中的二進制文件中寫入字節0

我正在寫一個字符,但我不知道這是否是正確的方法。

int i; 
for(i=0; i < 200; i++){ 
    fwrite(0, sizeof(char), 1, file); 
} 
+3

閱讀:http://en.cppreference.com/w/c/io/fwrite –

回答

3

fwrite第一個參數必須是一個有效指針。

可以使用fputc到立即字符(字節)寫入到這樣的文件:

int i; 
for(i=0; i < 200; i++){ 
    fputc(0, file); 
} 
1

您應該指定包含要寫入數據的緩衝區。在你的情況下,你可以將'\ 0'存儲在char變量中並傳遞它的地址。

char c = 0; 
int i; 
for (i = 0; i < 200; i++) 
    fwrite(&c, sizeof c, 1, file); 

另一(更有效的)的解決方案是創建直接200個元件的緩衝液:

char buff[200] = {0}; // declare array with 200 '\0' bytes 
fwrite(buff, 1, 200, file);