在一列表框上显示存在test.txt中的路径名,程序没错误,是不能在列表框上显示出来,并且提示在访问test.txt时发生了一个不明的错误!
void CQqDlg::OnBtn1() 
{
// TODO: Add your control notification handler code here
    CStdioFile file;
file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
CString s,y;
CString strFilter="打开文件(*.txt)|*.txt||";
static CFileDialog fdlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_HIDEREADONLY,strFilter);
POSITION pst=fdlg.GetStartPosition();
if(fdlg.DoModal()==IDOK)
{

while(pst!=NULL)
{   
s=fdlg.GetNextPathName(pst);
file.WriteString(s);


}
while(file.ReadString(y))
{
   m_list.InsertString(-1,y);
  
}
  
     
}
}

解决方案 »

  1.   

    while(file.ReadString(y))
    {
      m_list.InsertString(-1,y);
     

    前面加上
    file.SeekToBegin()
      

  2.   

    你没有写入换行符号
    在WriteString写入一个文件名之后就应该写入一个换行符号
    CStdioFile的ReadString默认遇到换行符停止
      

  3.   

    while(pst!=NULL)

    s=fdlg.GetNextPathName(pst);
    s+=_T("\n");
    file.WriteString(s);} 
    你自己试试吧,我没有测试过上面的代码
      

  4.   

    我也遇到这样的问题,我的文本文件是事先程序生成的,然后读取的时候没遇到“\n”,在file.ReadString()处出现了错误,该怎么解决?