关于fputc等之后的文件position

hu7324829 2012-02-22 05:48:01

#include <stdio.h>
int main(){
char buf;
FILE *f = fopen("hello.txt", "ab+");
printf("%d\n", ftell(f));
fputc('c', f);
printf("%d\n", ftell(f));
}

今天突然用到fputc()
发现和我之前想的不同.
hello.txt里面是
12345

输出:
0
5

fputc不是在当前position位置之后写吗???
我觉得结果应该是
0
1
hello.txt的内容应是c2345了
...全文
102 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-02-23
  • 打赏
  • 举报
回复
关键是a
hu7324829 2012-02-23
  • 打赏
  • 举报
回复
OK
+ 指针为0
a 代表追加写

结贴.
idoing_xsf 2012-02-22
  • 打赏
  • 举报
回复
ab+往文件末尾追加写入,文件指针指向追加位置'c',函数 ftell() 用于得到文件位置指针当前位置相对于文件首的偏移字节数。
dedlous 2012-02-22
  • 打赏
  • 举报
回复
thx,前不久也在纠结这个问题~~
AnYidan 2012-02-22
  • 打赏
  • 举报
回复
可以结贴了
justkk 2012-02-22
  • 打赏
  • 举报
回复
关键是你的 a和后面的符号+

带有+时,表示以读写方式打开,文件指针在0
而写入数据时,是追加写入的
jixingzhong 2012-02-22
  • 打赏
  • 举报
回复
和打开方式有关。

70,023

社区成员

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

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