我很惊讶地说,我没有找到一个合理的解决方案,如何使用C++标准库调整文件大小.从原始文件中读取数据然后将其写入不同的文件似乎是完全愚蠢和浪费的.我只想要一个调整大小的方法来切断超出那个大小的数据......有什么能做到这一点吗?
编辑:如果我必须使用我上面解释的方法,我的缓冲区应该有多大,我用来读/写?我显然无法立即读取整个文件,因为我在这里使用相当大的文件.
您可以使用Boost.Filesystem提供的功能,特别是其resize_file()函数.
请注意,Boost.Filesystem(计划包含在)语言标准的未来迭代中.看到这里.如果您不想在项目中使用Boost,这是个好消息.
另外,正如@BenjaminLindley所提到的,<filesytem>标题已经在Visual Studio 2012中可用(请参阅此处 ;搜索"filesystem").