将字符串写入文件 [英] Write string to File

查看:102
本文介绍了将字符串写入文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!
我有疑问,希望有人可以帮助我:
首先,我有一个CPerson类,定义为:

CPerson类:
公共CObject
{
私人:
CString m_strNamePer;
CString m_strImagePer;
公众:
//其他代码...
CString GetName()
{
返回m_strNamePer;
}
CString GetImage()
{
返回m_strImagePer;
}
};

然后,我想通过write方法写入文件:

char * pFileName ="Person.dat";
ofstream fout(pFileName,ios :: binary);
if(!fout)
{
MessageBox(_T(无法打开文件"),_ T(打开文件"),MB_OK | MB_ICONSTOP);
返回;
}

CPerson * m_data;
//获取指向指针m_data的数据的其他代码,可以.

CString strName = m_data-> GetName();
fout.write(strName,50);
CString strImage = m_data-> GetImage();
fout.write(strImage,100);
}
fout.close();

构建时,有两个相同的错误:
错误C2664:``std :: basic_ostream< _Elem,_Traits> :: write'':无法将参数1从``CString''转换为``const char *''

我是初学者.请帮忙!

every body!
I have question, hoping someone can help me:
First, i have a CPerson class, define that:

class CPerson :
public CObject
{
private:
CString m_strNamePer;
CString m_strImagePer;
public:
//Other codes...
CString GetName()
{
return m_strNamePer;
}
CString GetImage()
{
return m_strImagePer;
}
};

Then, I want to write to a file by write method:

char* pFileName = "Person.dat";
ofstream fout(pFileName, ios::binary);
if(!fout)
{
MessageBox(_T("Can''t open the file"), _T("Open file"), MB_OK|MB_ICONSTOP);
return ;
}

CPerson* m_data;
//Other code to get data to pointer m_data, this code is Okay.

CString strName = m_data->GetName();
fout.write(strName, 50);
CString strImage = m_data->GetImage();
fout.write(strImage, 100);
}
fout.close();

When i build, there are two errors, which are same:
error C2664: ''std::basic_ostream<_Elem,_Traits>::write'' : cannot convert parameter 1 from ''CString'' to ''const char *''

I am beginner. Please help!

推荐答案

使用GetBuffer()方法从CString中获取char *.不要忘了之后再调用ReleaseBuffer.
Use the GetBuffer() method to get a char * from a CString. Don''t forget to call ReleaseBuffer afterwards.


这篇关于将字符串写入文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆