我有一个给定文件的行号列表。现在我想在文件中的每一行之前插入一个特定的行。如何使用C ++文件操作。
我知道tellg()
会在文件中给出字符的位置,但是如何在该行之前获取该行并进行打印。
答案 0 :(得分:0)
标准方式是:
或者,您可以:
注意:如果您有行号,那么最好从最大行号开始,按照最小行号的方式工作,因为在您开始将新内容插入文件后行号会发生变化。通过从最大值开始并尽量减少工作量,在等待处理的项目后面插入内容意味着它们的行号在整个操作过程中保持有效。
答案 1 :(得分:0)
lineNo
是一个包含点之前的点的向量,需要按升序排序。
line =1
while(std::getline(myReadFile, s1)){
if(line == lineNo[0]-1){
opfile<<line<<":"<<s1<<"\n";
opfile<<"what ever I want to insert\n";
lineNo.erase(lineNo.begin());
}
else{
opfile<<line<<":"<<s1<<"\n";
}
line++;
}
现在删除旧文件并重命名新文件。