关于文件读写?

t12345678 2005-07-06 12:28:28
我存了几个变量在一个数组中,然后将数组保存在文件中,但是读取出来时只有数组中第一个元素的值是正确的,其他都不对。请大家帮忙!
UpdateData(TRUE);
CFile cf;
int n_double=10,n_int=5;
double *bufdouble = new double[n_double];
int *bufint=new int[n_int];
{
bufdouble[0]=m_shuzi_fs;
bufdouble[1]=m_shuzi_fc;
bufdouble[2]=m_shuzi_rs;
bufdouble[3]=m_shuzi_wed;
bufdouble[4]=m_shuzi_SNR;
bufint[0]=m_shuzi_N;
bufint[1]=m_shuzi_segment;
} //直到这里都是正确的
// int lens;
if(cf.Open("myset.haha",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite|CFile::shareDenyNone)) //modeCreate|CFile::modeNoTruncate|CFile::modeNoTruncate|
{
AfxMessageBox("打开成功!",MB_ICONINFORMATION);
// lens = cf.GetLength();
cf.Write(bufdouble,n_double);
cf.Write(bufint,n_int);
cf.Close();
}
else
{
AfxMessageBox("打开失败!");
}
...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
t12345678 2005-07-07
  • 打赏
  • 举报
回复
哈哈,昨天晚上自己搞定了,就像大家说的,是长度的问题,我把长度改成了100就行了,而且读写完全正确。
谢谢大家!
快乐鹦鹉 2005-07-06
  • 打赏
  • 举报
回复
首先,你应该打开文件看看,是不是正确写入了(并不是二进制文件,因此用记事本打开就行了)
其次,看看你的读程序的代码是否有误呢?
如果这两方面都确认无误,那么才能说问题在你贴出的这段代码上。
becool3000 2005-07-06
  • 打赏
  • 举报
回复
也可能是你UpdateData的时候
当有改变的时候,就更新了
所以会只有数组的第一个.
关注中~~~~~~~~~~~
wbf420 2005-07-06
  • 打赏
  • 举报
回复
长度没控制好!
becool3000 2005-07-06
  • 打赏
  • 举报
回复
看着似乎没有错误啊
你在WRITE的时候 长度那样定义是不是不对的啊
数组的长度不应该就等于个数吧
不知道我说的是不是正确的
希望有高手看出来!
帮你顶~~~~~~~~~
shenailin 2005-07-06
  • 打赏
  • 举报
回复
不会把
my0892 2005-07-06
  • 打赏
  • 举报
回复
bufdouble中只有5个值,却要写10个到文件中去,下一个写的时候,怎么判断文件指针到哪儿了?是不是这儿有问题啊?
forover 2005-07-06
  • 打赏
  • 举报
回复
因该是长度有误,建议你将要写入文件的一些变量都保存在一个结构体当中,每次写入结构体或是读出结构体就可以了

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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