我在Windows上有一个文件。我正在用C ++写作。我有一个问题,我需要从文件的末尾删除一些字节。我正在使用ifstream,但我不知道如何删除这些字符,简单的把'\ 0'放在文件中还是什么?
答案 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()
方法。