我想更改一个二进制文件里面特定位置的一个标志位(不在文件尾而是在文件中间),我直接写进去发现文件其它的信息被更改了(我用的是标准C)。我想先把文件里面的内容读到一个缓冲区里再做更改,但总觉这样太麻烦,而且文件一大的话效率就非常低了。请问哪位知道有什么更好的方法可以更改?
解决方案 »
- 简单问题抢答:如何判断编辑框输入的数字是否是一位小数??
- [求助]请教一个对话框之间通信的问题
- 哪裡有BoundCheck for VC6(SP5)版的下載?
- InterlockedIncrement和volatile的问题?
- 编译时出的问题 但在其他的机子上同样的工程却编译没问题 请教高手
- 我是个VC初学者,现在想试着设计一个浏览器,现在的问题是,如何实现在地址栏中输入地址后按回车,可以显示新的网业????(怎样响应按回车的事
- 算法及源代码求助!!!
- 请大家介绍几篇介绍HOOK技术和类似于瑞星杀毒助手精灵制作的文章
- 怎么对一块用户区上色
- 寻求图象匹配的好算法
- cannot open file "Debug/我的项目.exe"怎么办?
- 请问怎样将_bstr_t字符串转换为BSTR字符串?
FILE *fp;
fp = fopen( FileName, "rb+);2、将文件指针定位到要写的地方
fseek( fp, Offset, SEEK_SET);3、读出原内容,并修改之
fread( buffer, sizeof(char), n, fp );
修改buffer内容4、将文件重新定位到原位置
fseek(fp,Offset, SEEK_SET)5、重写数据
fwrite(buffer, sizeof(char), n, fp );
leavesxy(leaves_xy)
一定给分!
如果大于2.1G,那楼上的程序还得变一变,用绝对地址跳不到2.1G以后,不过可以用两次想对地址跳转跳到,但是对4.2G以上的也不行。
文件太大的话,只能调用<io.h>里的那些更低级的函数,比如_lseeki64,可以使用64位的定点数寻址,不过速度慢得多。
我以前做过一个超大文件的读写操作,甚至有上10G的大文件,简直惊人!