帮忙解决一下文件的操作?

dongzheng820 2003-11-26 11:20:11
1.二进制类型的文件.
2.能否删除文件尾部的固定Bit.
3.能否在文件头部追加固定Bit.
4.能否在文件中间添加或删除固定Bit。

当然解决2,3个问题后,问题4也就可以解决了。
...全文
52 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
laomai 2003-11-27
  • 打赏
  • 举报
回复
to sxbobo2002(五月雪) :
能把你的思路详细讲讲吗?让大家都学习一下好吗?谢谢!
gladiatorcn 2003-11-27
  • 打赏
  • 举报
回复
同志们!搂主说的是BIT!不是字节!
随意插入位,就意味着其后的字节全部要重新生成。
sxbobo2002 2003-11-27
  • 打赏
  • 举报
回复
以前也遇到过楼主同样的问题。。。
但最终也是用“临时文件”解决的。。。。

psbeond 2003-11-27
  • 打赏
  • 举报
回复
我想楼主的意思是字节为单位吧,往文件尾追加内容可以用"ab"打开,如果想删除文件前面或中间的内容,并且删除后后面的自动补上去,好像只能用临时文件(放在内存中也可以,但不如放磁盘上好,尤其大文件)的方法,office中的word就是采用临时文件的方法,当大家打开一个word文档时,会在相同的目录下生成非常多的隐藏word文件,当关闭word时,这些临时文件就没有了
hnwyf 2003-11-27
  • 打赏
  • 举报
回复
FILE* fp;
if((fp=fopen("file.txt","r"))==NULL)
printf("Can't open file.txt");
else
.....
laomai 2003-11-27
  • 打赏
  • 举报
回复
to TianGuangZao(天光早) :
今天我也想了一下,感觉要写到位也可以。
首先把指针定位到所在的字节上,然后进行位运算就可以了。
因为文件写的时候必须按字节写,所以要读到位的话,实质上还是读字节。
你说呢?
wyfsnn 2003-11-27
  • 打赏
  • 举报
回复
删除文件尾的字节很容易,只要把文件的大小缩一下就行了,用chsize
在文件的其他地方添加或删除是不可行的,不过可以等字节数的修改,
如果要添加或删除只能使用临时文件了
wcao 2003-11-26
  • 打赏
  • 举报
回复
楼上有没有人知道怎样删除ASCII文件末尾的数据块,也就是指定字节数。
我试了多次,怎是保留末尾的数据。
goodluckyxl 2003-11-26
  • 打赏
  • 举报
回复
if( ( fp = fopen( "file", "wb" ) ) == NULL )

TianGuangZao 2003-11-26
  • 打赏
  • 举报
回复
to laomai(老迈):
你说的有道理,刚看到时没仔细想过,我也不会,只是凭感觉肯定需要临时文件。
说真的,对文件操作,我没试过删掉或添加几个 bit 的情况。从来都是一个字节一个字节操作的。
我不知道给文件添几个 bit,比如刚好不是 8 的倍数,会出现什么情况,也不清楚,通过哪个函数能把这几个 bit 给不上。对于文件头部添几个 bit, 如刚好不是 8 的倍数,就更想不出来会是什么样子了。
lbaby 2003-11-26
  • 打赏
  • 举报
回复
呵呵,既然能改变某一字节
那改变某一bit又有什么困难呢?
laomai 2003-11-26
  • 打赏
  • 举报
回复
to: TianGuangZao(天光早) ( )
楼主问的是控制到每一位的程度啊,文件指针只能指到字节吧?
您能给出一个写到指定bit的例子吗?
爱摸鱼de老邪 2003-11-26
  • 打赏
  • 举报
回复
同意楼上的看法.
TianGuangZao 2003-11-26
  • 打赏
  • 举报
回复
我只能想到使用临时文件的方法,其它方法没见过。
BrightseaChen 2003-11-26
  • 打赏
  • 举报
回复
agree
daily1980 2003-11-26
  • 打赏
  • 举报
回复
打开文件时
if((fp = open("file","r+"))==NULL) //即设为读写
{
}

69,382

社区成员

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

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