为什么fwrite对C中的二进制文件不起作用?

时间:2014-11-08 19:25:54

标签: c file binary fwrite

我想用C语言将一些数据写入二进制文件。显然,函数fwrite似乎不能正常工作。这是代码:

typedef struct tw {
    char name[40];
    char tweet[150];
    int rt, like;
} Twitter;

void createFile() {
    FILE *bin;
    Twitter user;
    if (bin = fopen("test.bin", "wb") == NULL) {
        printf("Error");
        return 0;
    }
    strcpy(user.name, "name");
    strcpy(user.tweet, "this is a tweet");
    user.rt=5;
    user.like=10;

    fwrite(&user, sizeof(Twitter), 1, bin);

    fclose(bin);

}

fwrite函数不会在文件中写入任何内容,我在代码中查找错误,但我找不到任何错误。此外,当我尝试使用该函数写入txt文件时,它正常工作。

1 个答案:

答案 0 :(得分:3)

您需要更改

if (bin = fopen("test.bin", "wb") == NULL)

 if ((bin = fopen("test.bin", "wb")) == NULL)