首页 新闻 会员 周边

大家帮忙看一下,这个程序有什么问题?fwrite总是只能写入最后一份数据。

0
[已解决问题] 解决于 2017-03-24 10:07

FILE *content;
char buff[5];
content = fopen(AVARAGE_TIME_DCMETER,"w");

sprintf(buff,"%ld-",g_taskTime.avarageTime); //g_taskTime.avarageTime是一个长整形数据

 

if (content) {
fseek(content, g_taskTime.countToFile*sizeof(buff), SEEK_SET); // g_taskTime.countToFile 是一个长整形的数据,会递增
fwrite(buff, sizeof(buff), 1, content);
fclose(content);
}

 

g_taskTime.countToFile++;

 

由于这段程序,会不断调用,

按理说,写入文件的数据会是 16-17-28-类似这样,

但实际上,查看写入文件只有最后28-,

硬是没看出哪里出错,哪位高手火眼睛睛帮忙指出一下 

琳麻雀的主页 琳麻雀 | 菜鸟二级 | 园豆:206
提问于:2017-03-24 09:01
< >
分享
最佳答案
0

"r ":只读方式打开一个文本文件 "rb ": 只读方式打开一个二进制文件
"w ":只写方式打开一个文本文件 "wb ": 只写方式打开一个二进制文件
"a ":追加方式打开一个文本文件 "ab ": 追加方式打开一个二进制文件
"r+ ":可读可写方式打开一个文本文件 "rb+ ": 可读可写方式打开一个二进制文件
"w+ ":可读可写方式创建一个文本文件 "wb+ ": 可读可写方式生成一个二进制文件
"a+ ":可读可写追加方式打开一个文本文件 "ab+ ": 可读可写方式追加一个二进制文件

频繁打开文件,用追加的方式的话,用a+就可以啦!

琳麻雀 | 菜鸟二级 |园豆:206 | 2017-03-24 10:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册