如何从文件中删除记录?

sor*_*h-r 1 c++ file-io std

我想从文本文件中删除一些信息而不转移其所有记录.例如,给出了一个文本文件customers.txt.它有很多由#分隔符分隔的记录.每条记录包含以...分隔的字段;.像这样:1665;John;Smith给定客户ID,我想删除具有相应ID的客户.我可以在文件中找到记录的偏移量和长度,但不知道如何删除它.我必须重写整个文件吗?

注意:我正在使用带有g ++ 4.5和libst4的标准C++.

Lou*_*Lou 8

你有几个选择.1)重写文件的剩余部分,超过要删除的记录.2)用一些指示符替换记录,删除它并在解析文件时处理(比如用#或其他特殊字符替换正在删除的条目).