从文件读取和写入对我来说更容易,但我无法在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)
答案 0 :(得分:1)
您无法将std::string
分配给CString
,但CString
的构造函数会使用const char*
:
m_sName = data.c_str();
同样while(outFile.eof()!=true)
错误(最后一次读取操作将在设置 eof
后完成!),你应该这样做:
while (getline(outFile, data))
{
...