我有一个文本文件:

123
456
789


我想将“ 456”替换为“ AAA”。我该怎么做?

CStdioFile cfile;
CString line;
cfile.Open(_T("D\\text.txt"), CFile::modeReadWrite);
while (cfile.ReadString(line))
{
    if (line == L"456")
        cfile.WriteString(L"AAA");
}

最佳答案

仅当新行和旧行的长度相同时,此方法才有效。

您可以保存文件流的当前位置。找回原位置,写新行。

while (cfile.ReadString(line))
{
    auto llLine = cfile.GetPosition();
    if (line == L"456")
    {
       cfile.Seek(llLine, CFile::begin);
       cfile.WriteString(L"AAA");
    }
}


如果行的长度不同,则需要将内容写入新文件,并在进行更改后重命名。

关于c++ - 如何替换文本文件中的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27212929/

10-14 09:27