在C

时间:2016-05-31 22:15:23

标签: c file fwrite

我必须在C中的二进制文件中写入n个字节,我该怎么写呢?所有字节必须为0。

我正在写一个字母,但我不知道这是否正确。

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

1 个答案:

答案 0 :(得分:2)

您应该指定包含要写入的数据的缓冲区。在您的情况下,您可以将'\ 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);