【问题标题】:Write byte 0 in a binary file in C [closed]在 C 中的二进制文件中写入字节 0 [关闭]
【发布时间】:2016-09-30 02:30:39
【问题描述】:

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

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

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

【问题讨论】:

标签: c file fwrite


【解决方案1】:

fwrite 的第一个参数必须是一个有效的指针。

您可以使用fputc 将立即字符(字节)写入文件,如下所示:

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

【讨论】:

    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-18
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多