使用<fstream> header </fstream>将文本输出到文件中的特定行

时间:2011-12-28 05:12:00

标签: c++ fstream

如何使用<fstream>标题将某些文本写入文件的特定行?这有什么功能吗?谢谢。

3 个答案:

答案 0 :(得分:2)

你不能真的这样做,因为你写的行可能比存在的行长。所以你会破坏一条线或者必须重写整个文件。

如果行的长度完全相同,则可以进行二进制写入。

[编辑:错误地添加了以下行,仅适用于.NET]

如果可以,请使用File.ReadAllLines和File.WriteAllLines。

答案 1 :(得分:0)

如果你想在第5行插入文字:

1-将第5行的内容复制到缓冲区的新文件上的文件末尾。

2-然后写下你的线。 (将光标放在第5行的beinnin)

3-然后从另一个文件中复制回来。


或更复杂(不使用缓冲区):(与插入数组相同的算法)

您可以将所有线条移动到您要覆盖的线条以获得eact spae oryour线条。然后写下你的专栏。

例如,你想在第5行写下20个字符。

首先在文件末尾写入21个字符。 (如果有一个功能,那就是21个追逐者,我会更容易和更完美)。

然后放置一个循环,用位置-21中的char替换每个char。直到第5行到达。 然后在第5行写下你的专栏。

那可以吗?

答案 2 :(得分:0)

代码如下所示:

InputFile.open();
tmpFile.open();

while(InputFile.readline())
{
   if (this is where you want the new line)
   {
        tmpFile.write(newLine);
        if(Want to keep the original line)
        {
            tmpFile.writeLine(oldLine);
        }
   }
   else
   {
        tmpFile.writeLine(oldLine);
   }
}

InputFile.close();
tmpFile.close();
unlink(InputFile);
move tmpFile to InputFile.