【问题标题】:Replace line in file C++ [duplicate]替换文件C++中的行[重复]
【发布时间】:2017-04-19 11:05:46
【问题描述】:

我正在尝试替换文件中的行

例子

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++;
}

其中 line 是我要替换的行数。

感谢您的帮助!

【问题讨论】:

  • @pingul 不是,我正在替换行,我用该行的编号找到它,而不是起始词。
  • 如果您从那里提供的答案开始,这听起来像是一个微不足道的问题。

标签: c++ replace


【解决方案1】:

文件不仅仅是“硬盘上的一块内存”。因此,如果您打算更改文件,则必须创建具有更改内容的新文件,然后将其重命名为旧文件的名称(当然要删除旧文件)。所以,试着把你的代码修改成这样:

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++;
    }
}

【讨论】:

    猜你喜欢
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2013-09-21
    • 2020-07-21
    • 1970-01-01
    相关资源
    最近更新 更多