我想替换同一文件中的一行,即重写文件。目前,其写下线的行有待改变。我正在使用 seekp()来定位必须写入替换行的位置。以下是代码段。
std::fstream file (file_path, std::ios_base::in | std::ios_base::out);
while (getline (file, line)){
pos = file.tellp();
file.seekp(pos, std::ios_base::beg);
// calls another function which find some variables in line, change them and return String
const char *c = strdup(line.c_str());
file.write(c,line.length());
}
一切正常。唯一的问题是它在原始行下的文件中编写新的行。可能是设置 tellp()和 seekp()的问题。有什么方法可以将它们设置为行的开头,用新的onE替换原始行?
谢谢!