CFile中文件读取的有关问题

CFile中文件读取的问题?
C/C++ code
void CCFile8Dlg::OnBnClickedButton1()
{
    if(!UpdateData(true))
    {
        return;
    }
    CFile mFile;
    if(mFile.Open(L"2.txt",CFile::modeCreate|CFile::modeReadWrite))
    {

        char str[20]="m_input";
        mFile.Write(&m_input,strlen(str));
    }
}


void CCFile8Dlg::OnBnClickedButton2()
{
    CFile mFile;
    if(mFile.Open(L"2.txt",CFile::modeReadWrite))
    {
        char str[20]="m_inout";
        mFile.Read(&m_inout,strlen(str));
    }
    UpdateData(false);
}
错在那了?m_input,m_inout为cstring为什么读取数据的时候一致出错。自行关闭了 。求告人指点

------解决方案--------------------
char str[20]="m_input";
mFile.Write(&m_input,strlen(str));

写完记得
mFile.close();

不然别人打不开
------解决方案--------------------
C/C++ code
// Write File
    try
    {
        CFile file(_T("E:\\11.txt"), CFile::modeCreate | CFile::modeWrite);
        char buf[1024] = "Hell,World! 你好,世界!";
        file.Write(buf, sizeof(char) * strlen(buf));
        file.Close();
    }
    catch(CException* e)
    {
        e->ReportError();
        e->Delete();
    }

    // Read File
    try
    {
        CFile file(_T("E:\\11.txt"), CFile::modeRead);
        char buf[1024] = {0};
        file.Read(buf, sizeof(buf));
        file.Close();

        AfxMessageBox(CString(buf));
    }
    catch (CException* e)
    {
        e->ReportError();
        e->Delete();
    }

------解决方案--------------------
char str[20]="m_inout";
mFile.Read(str,strlen(str));

------解决方案--------------------
如果是读写字符串,建议使用CStdioFile
------解决方案--------------------
void CCFile8Dlg::OnBnClickedButton1()
{
if(!UpdateData(true))
{
return;
}
CFile mFile;
if(mFile.Open(L"2.txt",CFile::modeCreate|CFile::modeReadWrite))
{

char str[20]="m_input";
mFile.Write(str,strlen(str));
}
}


void CCFile8Dlg::OnBnClickedButton2()
{
CFile mFile;
if(mFile.Open(L"2.txt",CFile::modeReadWrite))
{
char str[20]="m_inout";
mFile.Read(str,strlen(str));
// 把str赋予你要显示的变量就可以显示了
}
UpdateData(false);
}