2017-04-19 73 views
-1

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

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

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

感谢您的帮助!

+0

@pingul这不,我更换线,我与该行的行号发现它,不启动字。 – Brky

+1

听起来像一个微不足道的问题,如果你从那里提供的答案开始解决。 – pingul

回答

0

文件不是“只是硬盘上的一块内存”。因此,如果您打算更改文件,则必须创建新内容并更改内容,然后将其重命名为旧文件的名称(当然,要删除旧文件)。所以,尽量修改代码以类似的东西:

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