如何修改文件内容?

fuyuncat 2003-08-25 10:11:15
用fopen(pFile, "ab+")打开
fseek定位后,再用fwrite写就会跑到文件末尾去了
...全文
56 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsAf 2003-09-18
  • 打赏
  • 举报
回复
哈哈,很显然的问题啊。在fopen函数中采用a参数就是说的是采用追加方式(append)。如果你要自己控制就采用w的方式,然后用fseek进行定位就可以了。
fuyuncat 2003-09-02
  • 打赏
  • 举报
回复
open file(mode is modified)

seek to file head position
seek to offset
^^^^^^^^^^^^^^^^^^^^^^^^^^没用的
then write
^^^^^^^^^^^又会跳到文件尾
close()

各位自己写段程序试一下先啊,再把代码贴出来。谢了先
ms44 2003-09-02
  • 打赏
  • 举报
回复
open file(mode is modified)
seek to file head position
seek to offset
then write
close()
fuyuncat 2003-09-02
  • 打赏
  • 举报
回复
"w+"也会将原内容冲调的。
MSDN:
"w+"
Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
fuyuncat 2003-09-02
  • 打赏
  • 举报
回复
问题又回来了。用"w+"只能在文件尾添加。文件内容太大,读进内存不现实。用临时文件的方法又太耗时间(我要修改一个几百m文件中的几个字节而已)
binjuny 2003-09-02
  • 打赏
  • 举报
回复
用fopen(pFile, "w+")
f5337 2003-09-02
  • 打赏
  • 举报
回复
把文件的内容全读到内存中 再用 remove 把文件删了 重新建立~~~~~~
呵呵
mme 2003-09-02
  • 打赏
  • 举报
回复
你的意思是说,想把一些内容插进一个文件之中,是吧!

我查了N多资料都没有找到插进去内容的方法.你还是省省吧!^_^
没办法,只好读出来再内存中改好,再写回去.
kajing 2003-08-26
  • 打赏
  • 举报
回复
w才会冲掉,w+是追加啊!
fuyuncat 2003-08-25
  • 打赏
  • 举报
回复
用w方式会把原内容全冲掉啊。
kajing 2003-08-25
  • 打赏
  • 举报
回复
用w+试试
fuyuncat 2003-08-25
  • 打赏
  • 举报
回复
用w方式会把原内容全冲掉啊。还有什么方式可以用?
代码肯定没错:
m_pFile = fopen(m_strFileName, "ab+");
if (m_pFile == NULL)
return FILE_ERR_FILEOPENERROR;
fseek(m_pFile, 0L, SEEK_SET);
fwrite((void*)&m_fhHead, sizeof(FILEHEAD), 1, m_pFile);
fclose(m_pFile);
wbh0360 2003-08-25
  • 打赏
  • 举报
回复
怎么吧,你代码肯定有错
jrhjrh 2003-08-25
  • 打赏
  • 举报
回复
打开方式换一下

69,369

社区成员

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

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