在C++中删除ofstream中的一行

Sti*_*rik 0 c++ fstream ofstream

我想删除文件中的行.我知道你可以存储文件的内容(例如在矢量中),擦除行并再次写入.但是,它感觉非常麻烦,如果文件变大则效率不高.

谁知道更好,更有效,更优雅的方式呢?

Oli*_*rth 7

在大多数文件系统上,这是您唯一的选择,而不是切换到实际的数据库.

但是,如果您发现自己处于这种情况(即非常大的文件,中间插入/删除),请考虑是否可以执行类似于在文件顶部维护位图的操作,其中每个位代表文件的一行.要"删除"一行,只需翻转相应的位值即可.