求助:TC下写文件时为什么会丢数据?

wonderful79 2006-01-18 05:57:16
char KeyData[7][14][255];
unsigned char KeyScanCode[7][14][255];
unsigned char CodeFlag[7][14][17];
通过一些赋值运算
把所有的数组都赋值
然后:
static void SaveData()/*Save the data*/
{
FILE *fp;
char DataName[50];
char YorN;
int i=0,j,k;

memset(DataName,0,50);
gets(DataName);
printf("Do you want to save the file as-> %s ? (Y/N)",DataName);
YorN=getch();
if(YorN=='y'||YorN=='Y')
{
fp=fopen(DataName,"w+");

for(i=0;i<7;i++)
{
for(j=0;j<14;j++)
{
fwrite(KeyScanCode[i][j], sizeof(unsigned char), 255, fp);
fwrite(KeyData[i][j], sizeof(char), 255, fp);
fwrite(CodeFlag[i][j],sizeof(unsigned char),17,fp);
}
}
fwrite(ConfigFlag,sizeof(unsigned char),7,fp);
fwrite(FormatCode,sizeof(unsigned char),6,fp);

fclose(fp);
}
}
为了保存数据,把下次能用到的数据保存在一个文件中,可是下次调用的时候,发现会丢失一些数据,这是为什么,该如何处理?望高手指点。
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Yang 2006-01-19
  • 打赏
  • 举报
回复
up
wonderful79 2006-01-18
  • 打赏
  • 举报
回复
我就是想把上次的数据覆盖,所以才用的w+,原来需要二进制写啊,谢谢,我先试试!
wonderful79 2006-01-18
  • 打赏
  • 举报
回复
可以写进去,可是读的时候却不是原来的顺序了,所以才用的循环!却不知道为什么数据会丢?
是丢了还是读的时候弄乱了,有时候都能读出来,有时候就会丢失一些数据,尤其是数据量很大的时候,不知道该如何解决,望高人赐教,谢谢!
megaboy 2006-01-18
  • 打赏
  • 举报
回复
fp=fopen(DataName,"w+");改为fp=fopen(DataName,"rb+");

用了w后,每次打开文件都会先清空文件,上一次写入的数据就没了;对于你的情况,应该用二进制而不是文本方式,因为在windows中0x0A会被转换为0x0D0A,从而使写入的数据产生差异;读取的时候,用二进制方式也可以避免产生0x1A使文件意外中断的问题。
cunsh 2006-01-18
  • 打赏
  • 举报
回复
fwrite函数可以直接写整个数组进去.不用循环.
国际学术期刊Science/AAAS和英特尔在全球首次联袂推出第一季《架构师成长计划》以来,吸引了无数架构师踊跃参与,获得业内广泛赞誉。为持续助力架构师把握数智机遇,构建未来,第二季《架构师成长计划》全新升级,强势归来!业内顶尖架构师大咖齐聚,为架构师群体量身打造系统成长课程,带来涵盖云游戏、云原生、联邦学习、生信大数据、算力网络、云网融合等多个热门话题的前沿技术及案例实践。第一期:超视频代 音视频架构建设与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=298&tc=yxq0921l2d&frm=csdn_2第二期:转化医学研究背景下的高性能计算平台复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=311&tc=pzw21rx59o&frm=csdn_2第三期:联邦学习的研究与应用实践复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=315&tc=0e8trfvt8i&frm=csdn_2第四期:用架构思维为云原生做减法复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=316&tc=i2kgf55ggn&frm=csdn_2第五期:网络智能化技术与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=322&tc=ckhvmonqvb&frm=CSDN_2第六期:异构计算 数据中心“芯”变革复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=325&tc=mzppx1h6ri&frm=csdn_2第七期:筑算力,话东西复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=327&tc=gwb7n8x79n&frm=csdn_2第八期:AI驱动的生命科学创新范式之变复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=328&tc=zircyqwy9u&frm=csdn_2第九期:软硬一体实现数据库性能优化复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=348&tc=4a46kfrb0o&frm=csdn_2第十期:AI规模化应用代的深度学习平台构建复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=349&tc=fm9a1mrumb&frm=csdn_2

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧