我想只改写文本的第一行数据
void EditView::WriteInTitle(CString strName, CString lpsz)
{
CFile WriteFile;
WriteFile.Open(strName, CFile::modeWrite | CFile::modeRead | CFile::typeBinary);
CString subStr = "\r"; //要被删除的子串
int index = lpsz.Find(subStr);
while (index!= -1)
{
lpsz.Delete(index, subStr.GetAllocLength());
index = lpsz.Find(subStr);
}
lpsz = lpsz + "\r\n";
LPCTSTR s = lpsz.GetBuffer(lpsz.GetLength());
WriteFile.Write(s, lpsz.GetLength()*sizeof(CHAR));
WriteFile.Close();
}
但是我覆盖了第一行后,后面就乱码了。。
目测是写入长度出问题了。。应该是覆盖到了第二行的文字。
但是这里长度不对吗?为什么会超出第一行的文字长度?