更改二进制文件

时间:2011-07-13 08:06:00

标签: c++ windows file binary

我在Windows上有一个文件。我正在用C ++写作。我有一个问题,我需要从文件的末尾删除一些字节。我正在使用ifstream,但我不知道如何删除这些字符,简单的把'\ 0'放在文件中还是什么?

3 个答案:

答案 0 :(得分:2)

在linux机器上,使用truncate(): http://linux.die.net/man/2/truncate

在Windows计算机上,使用SetEndOfFile():

http://msdn.microsoft.com/en-us/library/aa365531%28v=vs.85%29.aspx

两者都是依赖操作系统的呼叫。

答案 1 :(得分:2)

您无法轻松更改文件的大小;唯一的方法是将文件复制到临时文件,然后删除原文并重命名临时文件。

如果仅仅是截断文件的情况,Windows和Unix(但不一定是其他系统)都具有可以执行此操作的系统级功能,但标准中没有任何内容支持它。如果你最终不得不删除除了最后的字节,Windows和Unix都不允许它(尽管其他一些系统,至少在特定情况下)。

答案 2 :(得分:1)

为什么不截断文件?看看chsize()方法。