我的程序有两个编辑控制框,它们显示来自文本文件的文本,并且它们都有与之关联的按钮,如果在编辑控制框中写入或删除任何内容,则更新与它们关联的文本文件。我有这个代码可以从文本文件中读取
try
{
CStdioFile file(_T("1.txt"), CFile::modeRead);
CString str,mainstr = _T("");
while(file.ReadString(str))
{
mainstr += str;
mainstr += _T("\r\n");
}
CWnd *editwindow = this->GetDlgItem(IDC_EDIT2);
editwindow->SetWindowText(mainstr);
}
catch(CException* e)
{
MessageBox(_T("no such file"));
e->Delete();
}
然后将此代码写入文本文件
m_addtext.GetWindowText(m_adtxt);
if ( IsDlgButtonChecked(IDC_RADIO1) == BST_CHECKED )
{
CStdioFile file;
file.Open (_T("1.txt"), CFile::modeCreate | CFile::modeWrite);
file.WriteString (m_adtxt);
file.Close ();
}
对于我想要的,这一切都很好,而且花花公子,但问题是,如果我在编辑框中删除一个字符,然后单击更新按钮,它会在单词后添加一个块字符。有时它甚至在每个单词之后添加一个块,在每个空行上添加一个块。只要它创建一个新文件并且没有任何内容被删除,它就可以正常工作。我试过空终止,我试过ccs="encoding"
。谁能指出我正确的方向?