怎么在一个文件中删除内容?

AaronTJ 2003-11-08 07:14:26
书上好像都是说怎么从一个文件里读数据或者往文件里写数据
但是怎么修改一个文件呢
我为了处理一个文件在后面追加了8个字节的内容
处理完了想删除这8个字节的内容该怎么实现呢
我刚来这里,请大家帮我
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AaronTJ 2003-11-09
  • 打赏
  • 举报
回复
我对MFC不熟啊,而且C里好像没有类似于SetLength()这样的函数啊
也真奇怪,我见到过的C函数,只有往文件里写数据,没有从文件里删数据的
孤陋寡闻了,你们有谁知道C里面有类似函数的告诉我,谢谢了
galaxy_fxstar 2003-11-09
  • 打赏
  • 举报
回复
mfc的文件类有这样一个修改文件长度的函数刚好可以处理,不过你的好象不是用vc,但看一下能不能仿照着去做:

This method changes the length of the file



Parameters
dwNewLen
Specifies the desired length of the file in bytes. This value can be larger or smaller than the current length of the file. The file is extended or truncated as appropriate.
Example

// Example for the CFile::SetLength method.
extern CFile cfile;
long dwNewLength = 10000;
cfile.SetLength( dwNewLength );
AaronTJ 2003-11-09
  • 打赏
  • 举报
回复
可是我要处理的文件有可能是几百M甚至是上G的,这样处理不行啊
galaxy_fxstar 2003-11-09
  • 打赏
  • 举报
回复
我有个笨办法,先把文件读入内存缓冲区中,然后关闭文件,再用新建文件的方式打开和欲修改文件同名的一个文件(这样原文件就会被覆盖),在把缓冲区的内容写入文件(当然不能再写后面8个字节了)就可以了。
AaronTJ 2003-11-09
  • 打赏
  • 举报
回复
有人帮我吗?
着急ing......
AaronTJ 2003-11-08
  • 打赏
  • 举报
回复
我已经用
fseek(inFile, -8L, SEEK_END);
定位好了
本来想用
fwrite(EOF, sizeof(EOF), 1, inFile);
结束文件
但是我是以二进制方式打开文件的
所以不能用EOF结束文件了
该用什么来结束文件呢?
proware 2003-11-08
  • 打赏
  • 举报
回复
用fseek将文件指针定位到文件尾,然后删除你的字节.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧