double m_value[256];
m_vlaue[0]= 0.4341;
m_vlaue[0]=11.6565;
m_vlaue[0]=32.2346;
m_vlaue[0]=89.9387;
...
...
////////////写入数据
if(file.Open("value.dat",CFile::modeReadWrite|CFile::modeCreate|CFile::typeText)==0){
AfxMessageBox("Open value.dat error!");
}
file.Seek( 0, CFile::begin );
file.Write(m_value,256*sizeof(double));
-----------------------------------------------
double m_f_value[256]
////////////读取数据
if(file.Open("value.dat",CFile::modeReadWrite|CFile::typeText)==0){
AfxMessageBox("Open value.dat error!");
return;
}
file.Seek( 0, CFile::begin );
file.Read(m_f_value,256*sizeof(double));
------------------------------------------------读出的结果是,m_f_value前几个数据都对,但是到了后面,所有的数据都为0。
怎么回事??只是怪事。
哪位高手指点一下,谢谢!!

解决方案 »

  1.   

    m_vlaue[0]= 0.4341;
    m_vlaue[0]=11.6565;
    m_vlaue[0]=32.2346;
    m_vlaue[0]=89.9387;下标错误。全为0?
      

  2.   

    写错了。应该是
    m_vlaue[0]= 0.4341;
    m_vlaue[1]=11.6565;
    m_vlaue[2]=32.2346;
    m_vlaue[3]=89.9387;
    ...
    ..
    .
    但是,还是上面的问题,哪位高手可以指点,谢谢!
      

  3.   

    我的确实有问题,前32个数据都没有问题,后面就不行了。
    可以给我一个例程么?只要保证256个Double写入再读出没有问题,马上给分。
      

  4.   

    既然是CFile::typeText 
    file.Write(m_value,256*sizeof(double));
    可能有问题?
      

  5.   

    而且,你可以打开value.dat看看,因为他是文本文件吗
      

  6.   

    你直接这样就可以了.         
             double m_value[256];
    double a = 0.4341;
    for(int i = 0;i < 256;i++)
    {
    m_value[i]= a * (i+1);
    }
    CFile file;
    ////////////写入数据
    file.Open("value.dat",CFile::modeCreate);
    file.Close();
    if(file.Open("value.dat",CFile::modeReadWrite) == 0){//|CFile::typeText)==0){
    AfxMessageBox("Open value.dat error!");
    }
    file.Seek( 0, CFile::begin );
    file.Write(m_value,256*sizeof(double));
    file.Close(); double m_f_value[256];
    ////////////读取数据
    if(file.Open("value.dat",CFile::modeReadWrite)==0)
    {
    AfxMessageBox("Open value.dat error!");
    }
    file.Seek( 0, CFile::begin );
    file.Read(m_f_value,256*sizeof(double));
      

  7.   

    你用CFile::typeBinary替代CFile::typeText 就可以了.因该是数据存储的方式与读取的方式矛盾引起的.
      

  8.   

    好像还是不行,可以给我一个例子么?谢谢!
    [email protected]
      

  9.   

    把if(file.Open("value.dat",CFile::modeReadWrite|CFile::modeCreate|CFile::typeText)==0)中的|CFile::modeCreate|CFile::typeText)==0) 去掉再试一下。