是否可以使用fstream(或类似的东西)从C ++中的二进制文件末尾删除N个字节?我不想读取整个文件,剪切并再次写入,但由于它是从文件的末尾开始,它似乎不应该是这样的问题。
感谢您的任何建议。
答案 0 :(得分:6)
我不知道一种通用的C ++(独立于平台)方式,而无需编写新文件。但是,在POSIX系统(Linux等)上,您可以使用ftruncate()
function。在Windows上,您可以使用SetEndOfFile()
。
这也意味着您需要使用本机函数而不是fstream
来打开文件,因为您需要这些函数的本机描述符/句柄。
编辑:如果你能够使用Boost库,它的文件系统库中有一个resize_file()
function可以做你想要的。
答案 1 :(得分:1)