txt文件中是多行单列浮点型数据,想存放到一个以为数组中。

CString str; 
CStdioFile ff;
CFileDialog dlg(TRUE,NULL,"txt",OFN_HIDEREADONLY   |   OFN_OVERWRITEPROMPT,"Access Files (*.txt)|*.txt|All   Files   (*.*) |",this);
if(dlg.DoModal()==IDOK)
  {
}
   ff.ReadString(str);   //读取文件的一行字符串
  float st=atof(str);
  float buffer[1024]; 
   for ( int n=0; n<1024;n++)
   {
   while(ff.ReadString(str));
   {
   
    buffer[n]=st; 
   }
   } 
 ff.Close(); 
buile没有错误,但是调试会到if(dlg.DoModal()==IDOK)这里会有错如果把这个CFileDialog dlg(TRUE,NULL,"txt",OFN_HIDEREADONLY   |   OFN_OVERWRITEPROMPT,"Access Files (*.txt)|*.txt|All   Files   (*.*) |",this);
if(dlg.DoModal()==IDOK)
  {
}
换成ff.Open("D:\\data4last.txt",CFile::modeRead);     //读取文件
也会出现这个错误

解决方案 »

  1.   

     ff.ReadString(str);   //读取文件的一行字符串
    这之前ff都没有打开任何文件,咋就开始读取了呢?
      

  2.   

    CStdioFile ff(dlg.GetPathName(),CFile::modeRead);
      

  3.   

    楼主对 CFileDialog理解不深吧? CFileDialog只是一个文件选择对话框,并不是打开文件,你读文件之前先要打开文件才能读,ff.ReadString(str);之前先要ff.Open(...)
      

  4.   

    多谢多谢,我确实是没有理解好这个CFileDialog,这样的话只要open就可以了,就没有必要再添加哪个文件选择对话框了?
      

  5.   


    CString str; 
    CStdioFile ff;
    CFileDialog dlg(TRUE,NULL,"txt",OFN_HIDEREADONLY   |   OFN_OVERWRITEPROMPT,"Access Files (*.txt)|*.txt|All   Files   (*.*) |",this);
    if(dlg.DoModal()==IDOK)
      {
    // 这个 ‘}’ 错了 地方 !!!!
    }
       ff.ReadString(str);   //读取文件的一行字符串
      float st=atof(str);
      float buffer[1024]; 
       for ( int n=0; n<1024;n++)
       {
       while(ff.ReadString(str));
       {
       
        buffer[n]=st; 
       }
       } 
     ff.Close(); 
      

  6.   

        CString str; 
    CStdioFile ff;
    ff.Open("D:\\Documents\\Desktop\\sim1\\Debug\\data4last.txt",CFile::modeRead);     //读取文件
    ff.ReadString(str);   //读取文件的一行字符串
    float st=atof(str);
        float buffer[1024][1]; 
    for (int n=0; n <1024;n++) 

    if(ff.ReadString(str)); 


    st=atof(str); 
    buffer[n][1]=st; 

    m_ListCtrl.InsertItem( n, LVCFMT_LEFT);
    m_ListCtrl.SetItemText( n, 0, "n");
    m_ListCtrl.SetItemText( n, 1, "st");
    }


    UpdateData(TRUE);
    这样可以读取数据,但是要在listcontrol来里面显示所有的数据,为什么每一行显示的都是n和st呢
      

  7.   

    http://blog.csdn.net/zhoujielunzhimi/article/details/8534243
    这是我刚写的json学习札记,lz不妨看一下。
    其实很多时候,我们没必要还像大学那样用结构体来做,尽可能采用第三方库。
    比如你这种情况,json很适合。
    如果是结构体什么的,tinyxml来做。
    要加密,sqlite可以做到。
    这些库效率高,使用简洁方便。
      

  8.   

    之前没有接触过JSON,MFC工程导入这个库就可以用么
      

  9.   

    下载后解压,然后里面有个工程vs71,里面有个include文件夹,你可以编译成lib或者直接用头文件。