用fstream怎么截短一个文件,在一个指定streampos结束文件
用fstream如何截短一个文件,在一个指定streampos结束文件?
比如一个文件是很多记录,有的记录打了删除标记,现在要把有删除标记的记录真正删除,用文件后面的记录来填补删除记录的位置,最后的文件肯定变短,如何让文件在一个指定streampos结束?我这里问的是在同一个文件里面pack操作,当然实际上不如写入一个新文件再改名更安全。
------解决思路----------------------
写入一个新文件再改名不会死人的。
楼主非要在同一个文件中pack,请注意:
使用binary、read、write模式打开
每次读前要明确地seekg
每次写前要明确地seekp
最后还得_chsize(windows),ftruncate(linux)
------解决思路----------------------
fstream的不会,ftruncate
比如一个文件是很多记录,有的记录打了删除标记,现在要把有删除标记的记录真正删除,用文件后面的记录来填补删除记录的位置,最后的文件肯定变短,如何让文件在一个指定streampos结束?我这里问的是在同一个文件里面pack操作,当然实际上不如写入一个新文件再改名更安全。
------解决思路----------------------
写入一个新文件再改名不会死人的。
楼主非要在同一个文件中pack,请注意:
使用binary、read、write模式打开
每次读前要明确地seekg
每次写前要明确地seekp
最后还得_chsize(windows),ftruncate(linux)
------解决思路----------------------
fstream的不会,ftruncate