下面是我的读写文件代码,改了半天,还是不行,刚学,起步真的很难啊,还请大虾们指点!!!
PZinfor *PPZinfor=new PZinfor();


PPZinfor->SliderPos=m_slider.GetPos();

PPZinfor->Combo1Pos=m_combo1.GetCurSel();
PPZinfor->Combo2Pos=m_combo2.GetCurSel();
PPZinfor->Combo3Pos=m_combo3.GetCurSel();

    PPZinfor->checkpos1=((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck();
PPZinfor->checkpos2=((CButton *)GetDlgItem(IDC_CHECK2))->GetCheck();
PPZinfor->checkpos3=((CButton *)GetDlgItem(IDC_CHECK3))->GetCheck();
PPZinfor->checkpos4=((CButton *)GetDlgItem(IDC_CHECK4))->GetCheck();
PPZinfor->checkpos5=((CButton *)GetDlgItem(IDC_CHECK5))->GetCheck();
PPZinfor->checkpos6=((CButton *)GetDlgItem(IDC_CHECK6))->GetCheck();

PPZinfor->RadioPos1=((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck();
PPZinfor->RadioPos2=((CButton *)GetDlgItem(IDC_RADIO2))->GetCheck();
CFile MyFile;
MyFile.Open(_T(".\\MyInfor.txt"),CFile::modeCreate|CFile::modeWrite);
MyFile.Write(&PPZinfor,sizeof(PZinfor));
MyFile.Close();
delete PPZinfor; PZinfor *PPZinfor=new PZinfor();
      CFile MyFile;
      CFileFind filefind;
   if(filefind.FindFile(".\\MyInfor.txt"))
      {
   MyFile.Open(_T(".\\MyInfor.txt"),CFile::modeRead);
        MyFile.Read(&PPZinfor,sizeof(PZinfor));
  
        m_slider.SetPos(PPZinfor->SliderPos);
   
    m_combo1.SetTopIndex(PPZinfor->Combo1Pos);
    m_combo2.SetTopIndex(PPZinfor->Combo2Pos);
     m_combo3.SetTopIndex(PPZinfor->Combo3Pos);
   
     ((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(PPZinfor->checkpos1);
        ((CButton *)GetDlgItem(IDC_CHECK2))->SetCheck(PPZinfor->checkpos2);
    ((CButton *)GetDlgItem(IDC_CHECK3))->SetCheck(PPZinfor->checkpos3);
    ((CButton *)GetDlgItem(IDC_CHECK4))->SetCheck(PPZinfor->checkpos4);
((CButton *)GetDlgItem(IDC_CHECK5))->SetCheck(PPZinfor->checkpos5);
     ((CButton *)GetDlgItem(IDC_CHECK6))->SetCheck(PPZinfor->checkpos6);
   
        ((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(PPZinfor->RadioPos1);
     ((CButton *)GetDlgItem(IDC_RADIO2))->SetCheck(PPZinfor->RadioPos2);
  
        MyFile.Close();
      }

解决方案 »

  1.   

    哪不行,代码上通不过,还是结果跟想像中的不同?读文件最好用CStdioFile类有空结贴,结贴率太低了
      

  2.   

    首先重申下一楼的批评,结贴率低的帖子别人都不想回答。那你问问题就没意义了其次是你的错误,你没有分清指针的地址和指针所指向的地址的区别PZinfor *PPZinfor=new PZinfor();// 这句中的PZinfor,他所指向的地址空间为一个PZinfor,大小为sizeof(PZinfor)
                                          //但是他自身的地址&PZinfor,空间大小为sizeof(PZinfor);为一个指针的大小,非所指向空间,楼主你搞错了PZinfor *PPZinfor=new PZinfor(); 
    PPZinfor->SliderPos=m_slider.GetPos(); PPZinfor->Combo1Pos=m_combo1.GetCurSel(); 
    PPZinfor->Combo2Pos=m_combo2.GetCurSel(); 
    PPZinfor->Combo3Pos=m_combo3.GetCurSel();     PPZinfor->checkpos1=((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck(); 
    PPZinfor->checkpos2=((CButton *)GetDlgItem(IDC_CHECK2))->GetCheck(); 
    PPZinfor->checkpos3=((CButton *)GetDlgItem(IDC_CHECK3))->GetCheck(); 
    PPZinfor->checkpos4=((CButton *)GetDlgItem(IDC_CHECK4))->GetCheck(); 
    PPZinfor->checkpos5=((CButton *)GetDlgItem(IDC_CHECK5))->GetCheck(); 
    PPZinfor->checkpos6=((CButton *)GetDlgItem(IDC_CHECK6))->GetCheck(); PPZinfor->RadioPos1=((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck(); 
    PPZinfor->RadioPos2=((CButton *)GetDlgItem(IDC_RADIO2))->GetCheck(); 
    CFile MyFile; 
    MyFile.Open(_T(".\\MyInfor.txt"),CFile::modeCreate|CFile::modeWrite); 
    MyFile.Write(&PPZinfor,sizeof(PZinfor)); 
    MyFile.Close(); 
    delete PPZinfor; PZinfor *PPZinfor=new PZinfor(); 
          CFile MyFile; 
          CFileFind filefind; 
      if(filefind.FindFile(".\\MyInfor.txt")) 
          { 
      MyFile.Open(_T(".\\MyInfor.txt"),CFile::modeRead); 
            MyFile.Read(PPZinfor,sizeof(PZinfor));  //这样才对  
          m_slider.SetPos(PPZinfor->SliderPos); 
      
      m_combo1.SetTopIndex(PPZinfor->Combo1Pos); 
      m_combo2.SetTopIndex(PPZinfor->Combo2Pos); 
        m_combo3.SetTopIndex(PPZinfor->Combo3Pos); 
      
        ((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(PPZinfor->checkpos1); 
            ((CButton *)GetDlgItem(IDC_CHECK2))->SetCheck(PPZinfor->checkpos2); 
      ((CButton *)GetDlgItem(IDC_CHECK3))->SetCheck(PPZinfor->checkpos3); 
      ((CButton *)GetDlgItem(IDC_CHECK4))->SetCheck(PPZinfor->checkpos4); 
    ((CButton *)GetDlgItem(IDC_CHECK5))->SetCheck(PPZinfor->checkpos5); 
        ((CButton *)GetDlgItem(IDC_CHECK6))->SetCheck(PPZinfor->checkpos6); 
      
            ((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(PPZinfor->RadioPos1); 
        ((CButton *)GetDlgItem(IDC_RADIO2))->SetCheck(PPZinfor->RadioPos2); 
      
            MyFile.Close(); 
          }