C fwrite()写入的字符数加倍

时间:2013-03-18 02:45:29

标签: c char fwrite

当我使用此代码时

FILE *f = fopen(file, "wb");
fflush(f);
if (f==NULL) {
    //perror(f);
    return 0;
}
else{
    fwrite(text, sizeof(char), strlen(text), f);
    int i = fprintf(f, "%s", text);
    if (i>0) {
        fclose(f);

        return  1;
    }

textconst char text[1024000],它被设置为函数中的一个参数) 如果我写

This is a test
This is a test

测试它是否可以写多行,它写这个

This is a test
This is a testThis is a test
This is a test

为什么我会得到这种奇怪的行为?

2 个答案:

答案 0 :(得分:5)

你写了两次:

fwrite(text, sizeof(char), strlen(text), f);
int i = fprintf(f, "%s", text);

选择一个

答案 1 :(得分:0)

这两行写两次“文本”。他们做同样的事情。

fwrite(text, sizeof(char), strlen(text), f);
int i = fprintf(f, "%s", text);

唯一的区别是fprintf写了比fwrite多一个字节'\ 0'。