2016-05-31 98 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);