C++ 使用<;将文本输出到文件中的特定行;fstream>;标题
如何使用C++ 使用<;将文本输出到文件中的特定行;fstream>;标题,c++,fstream,C++,Fstream,如何使用标题将文本写入文件的特定行?有什么功能可以做到这一点吗?谢谢。您不能这样做,因为您写的行可能比现有的行长。因此,您可能会删除一行或必须重写整个文件 如果行的长度完全相同,则可以进行二进制写入 [编辑:以下行被错误添加,仅适用于.NET] 如果可以,请使用File.ReadAllLines和File.writeallines。如果要在第5行中插入文本: 1-将第5行的内容复制到新文件的文件末尾,并将其复制到缓冲区 然后写下你的台词。(将光标放在5号线的贝宁) 3-然后从另一个文件中复制回行
标题将文本写入文件的特定行?有什么功能可以做到这一点吗?谢谢。您不能这样做,因为您写的行可能比现有的行长。因此,您可能会删除一行或必须重写整个文件
如果行的长度完全相同,则可以进行二进制写入
[编辑:以下行被错误添加,仅适用于.NET]
如果可以,请使用File.ReadAllLines和File.writeallines。如果要在第5行中插入文本: 1-将第5行的内容复制到新文件的文件末尾,并将其复制到缓冲区 然后写下你的台词。(将光标放在5号线的贝宁) 3-然后从另一个文件中复制回行
或者,更复杂(不使用缓冲区):(与数组中的插入算法相同) 您可以将所有行移到要覆盖的行的上方,以获得您的行的eact spae。然后写下你的台词 例如,您希望在第5行中写入20个字符 首先在文件末尾写入21个字符。(如果有一个功能,移动字符21个字符,我会更容易和完美) 然后放置一个循环,将每个字符替换为-21位置的字符。直到联合国到达5号线。 然后在第5行写下你的台词
可以吗?代码如下所示:
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.
不,文件不是这样工作的。你的意思是我只能在文件的末尾添加文本?不,你可以在文件的中间或开头添加文本。检查我的答案。你可以写你自己的函数。。。(不复杂)什么头文件是
file.ReadAllLines
在中定义的?@CodyGray:hahahaha。这让我很开心!Thanks@CodyGray:哦,对不起。我以为你知道,File::ReadAllLines
是.NET,故意问“什么头文件”来通知作者这个错误。我也是。它只解决了问题的一部分,只是概念上的问题。@eharvest:重新检查我的答案。我将在这里重复我答案的相关部分:“所以你可能会删除一行或重写整个文件。如果所有行的长度都完全相同,你可以进行二进制写入。”如果这让你感到困惑,我很抱歉。