从文本文件中读取数据并使用SDI应用程序(MFC)显示数据?

时间:2014-09-03 18:56:15

标签: c++ mfc

从文件读取和写入对我来说更容易,但我无法在SDI应用程序(MFC)中执行....我需要一些指导来解决这个问题..........   这是构造函数

    CFileDoc::CFileDoc()
    {
    // TODO: add one-time construction code here
      CFileDialog m_IdFile(true);
      if(m_IdFile.DoModal()==IDOK)
       m_sFileName= m_IdFile.GetFileName();
       fstream outFile;
       string data;

       outFile.open(m_sFileName,ios::in);

    {
              while(outFile.eof()!=true)

            {

                getline(outFile,data);

                m_sName=data;
          }
}
    outFile.close();

}

我在这部分做错了

  m_sName=data;

因为m_sName的数据类型是CString而数据的数据类型是字符串

 CString m_sName;

 string data;

错误是

binary '=' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversion)

1 个答案:

答案 0 :(得分:1)

您无法将std::string分配给CString,但CString的构造函数会使用const char*

m_sName = data.c_str();

同样while(outFile.eof()!=true)错误(最后一次读取操作将在设置 eof完成!),你应该这样做:

while (getline(outFile, data))
{
 ...