这是比较有代表性的代码
char sRead[n];
CFile mFile(_T("c:\\boot.ini"),CFile::modeRead);
mFile.Read(sRead,n);
MessageBox(sRead);
mFile.Close();问题是,n的设置很麻烦;n设置小了的话,文件读不全;n设置大了的话,读出来又有代码;
一下代码也可以读取
CStdioFile   myFile; 
myFile.Open( "c:\\boot.ini ",CStdioFile::modeRead); 
CString   str; 
myFile.ReadString(str); 
MessageBox(str); 但是每次只能读取一行;想问一下,怎样才能比较正常的读取txt文件呢?

解决方案 »

  1.   

    char sRead[1024] = {0};
    CFile mFile(_T("c:\\boot.ini"),CFile::modeRead);
    mFile.Read(sRead,n);
    MessageBox(sRead);
    mFile.Close();初始化缓冲区啊
      

  2.   

    ini文件用GetPrivateProfileString不好吗?
      

  3.   

    n的值,可以通过CFile的GetLength获得,缓冲区就可以动态申请
      

  4.   

    CFile mFile(_T("c:\\boot.ini"),CFile::modeRead);
    char* sRead;
    DWORD dwFileLen;
    dwFileLen = (DWORD)file.GetLength();
    sRead = new char[dwFileLen+1];
    mFile.Read(sRead,dwFileLen);
    MessageBox(sRead);
    mFile.Close();
      

  5.   

    个人觉得用CArChive类比较好用些
    可以自动逐行读取文件
      

  6.   

    CFile mFile(_T("c:\\boot.ini"),CFile::modeRead);
    char* sRead;
    DWORD dwFileLen;
    dwFileLen = (DWORD)mFile.GetLength();
    sRead = new char[dwFileLen+1];
    mFile.Read(sRead,dwFileLen);
    MessageBox(sRead);
    mFile.Close();刚才getlength前面的写成了file,试试看应该可以
      

  7.   


    非常感谢你的代码,意思动态申请,还有GetLength(),非常感谢!