发布网友 发布时间:2022-04-26 23:35
共2个回答
热心网友 时间:2022-06-20 05:49
看你的代码,只写了一次,想反复写入自然要执行多次fwrite函数,执行次数如果已知一般用for循环,次数未知但是结束写入的条件知道一般用while循环,举个简单例子:
int i=0;
for(i; i<10; i++)
fwite(outfile,strlen(outfile),1,fp);
这里就会写入10次outfile到文件流fp中,如果打开方式是w+(追加),自然能看到写入的10次数据。
你在多次写入时不要多次打开,就是循环语句不要把fopen函数也包含起来。
写入方式:
w 写
+ 追加
b 二进制
wb+ :以追加写方式打开二进制文件,文件存在则追加,不存在则创建。追问对不起是我的错 我的完整代码是这样的:
int main()
{
FILE *fp;
int count = 0;
fp = fopen("./power.txt","wb");
if(fp == NULL)
{
perror("fopen");
exit(1);
}
do
{
count = fwrite("hello",5,1,fp);
printf("count = %d\n",count);
if(count != 1)
{
perror("fwrite");
exit(1);
}
usleep (300000);
}
while (1);
fclose(fp);
return 0;
}
写入次数未知并且是不追加 多次写入文件没有内容
追答可以写入啊,你的文件路径是不是找错了,你是什么环境,如果是vc的话,改成下面:
fp = fopen("c:power.txt","wb");
运行完到c盘目录下找到powre.txt文件,我的是可以写入的。
热心网友 时间:2022-06-20 05:49
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大,而且是fseek函数对此函数没有作用。追问也谢谢你的解答,不过分只能给一个人 就委屈你了