当我使用此代码时
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;
}
(text
是const 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
为什么我会得到这种奇怪的行为?
答案 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'。