替换文件C ++中的行

时间:2017-04-19 11:05:47

标签: c++ replace

我正在文件替换

实施例

aaa bbb ccc
bbb ccc ddd
ccc ddd eee

我想用

之类的东西替换第二行
111 222 333

所以结果将是

aaa bbb ccc
111 222 333
ccc ddd eee

我试过

while (getline(infile, curline))
{
    if (counter == line)
    {
        outfile << input1 << "\t" << input2 << "\t" << input3 << "\t" << input4 << endl;
        break;
    }
    counter++;
}

其中是我要替换的行号。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

文件不是&#34;只是硬盘上的一块内存&#34;。因此,如果您计划更改文件,则必须创建具有更改内容的新文件,然后将其重命名为旧文件的名称(当然,删除旧文件)。因此,尝试将代码修改为类似的内容:

while (getline(infile, curline))
{
    if (counter == line)
    {
        // altered line creation
        outfile << input1 << "\t" << input2 << "\t" << input3 << "\t" << input4 << endl;
    }
    else
    {
        // the line goes without changes
        outfile << curline << endl;
        counter++;
    }
}