如何使用<fstream>
标题将某些文本写入文件的特定行?这有什么功能吗?谢谢。
答案 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.