2 weixin 39934836 weixin_39934836 于 2017.08.27 16:23 提问

MFC中怎么查找txt文件中数据,并进行修改 40C

这是写入的代码,能不能修改金额并覆盖原来的金额。

void CRigister::OnBnClickedBbtRegister()
{
// TODO: 在此添加控件通知处理程序代码

UpdateData(TRUE);
USES_CONVERSION;
if (m_edt_passward != m_edt_PASSWARD)
{
    MessageBox(_T("2次密码输入不同!"));
}
else
{
    MessageBox(_T("注册成功!"));


    CUser userlnfo;
    CFile file;
    strcpy_s(userlnfo.name, T2A(m_edt_usename));

    strcpy_s(userlnfo.pwd, T2A(m_edt_passward));

    strcpy_s(userlnfo.type, T2A(m_edt_Type));

    strcpy_s(userlnfo.money,T2A(m_edt_Money));

    file.Open(_T("1.text"), CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate | CFile::shareExclusive);
    file.SeekToEnd();
    file.Write(&userlnfo, sizeof(CUser));
    file.Close();

    CMFCFileOpDemoDlg dlg;
    dlg.DoModal();

}

}

2个回答

caozhy
caozhy   Ds   Rxr 2017.08.27 23:35

文本文件除非替换的字符和原来的字符数相同,否则不能覆盖,只能是先缓存在内存里,再一次性写入

caozhy
caozhy 回复weixin_39934836: 你应该能想象,文件是线性的,不能插入或者删除,否则只能把后面的数据都往前或者往后搬,这是很低效的。
3 个月之前 回复
caozhy
caozhy 回复weixin_39934836: 比如1替换成2,可以,但是1替换成123,不可以
3 个月之前 回复
weixin_39934836
weixin_39934836 数字的字符数不同吗?有没有其他办法
3 个月之前 回复
what951006
what951006   Rxr 2017.08.27 21:04

CStdioFile使用一行一行的写入,先读取,再写入

Csdn user default icon
上传中...
上传图片
插入图片