c语言怎样移动文件指针到制定位置啊

定义一个结构体,包括姓名,年龄等,结构体大小为44字节,写入文件时是按一行一个结构体写入的,当想修改一个某人的数据时,要使文件指针指向该人,应该怎么做啊我写的,但是不行,... 定义一个结构体,包括姓名,年龄等,结构体大小为44字节,写入文件时是按一行一个结构体写入的,当想修改一个某人的数据时,要使文件指针指向该人,应该怎么做啊
我写的,但是不行,错在那里了
fseek(fp,n*44L,SEEK_SET);
其中n是表示第n个结构体,快啊,谁来帮帮我?
嗯,我行末加了换行符啊,还有用的制表符输入的数据

例子:向修改ping这行数据,结果就是这样
kaka' 20 w sd sdda
ping 29 w sdf sadf
PING 20 s sd sd
展开
 我来答
du瓶邪
推荐于2017-10-02 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2790万
展开全部

参数为下列其中一种:

SEEK_SET:从距文件开头 offset 位移量为新的读写位置;

SEEK_CUR:以目前的读写位置往后增加 offset 个位移量;

SEEK_END:将读写位置指向文件尾后再增加 offset 个位移量。

百度网友6cd9b6b9f
推荐于2017-09-13 · 超过29用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:0
展开全部
你没有贴出源码,所以下面的修改意见也只是猜测,你可以试一下:
1. 你写入文件进是按一行一个结构体写入的,这时你有没有用换行符,如果有,你就要在fseek时加入换行符的字节。
2. n在fseek时要减1,fseek(fp,(n-1)*44L,SEEK_SET); 才是你要修改的数据。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91cc10c
2008-06-10 · TA获得超过202个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:91.6万
展开全部
错是什么现象?窜位置了?还是其它错误?

可能的原因:
1.看看你文件的打开方式,不能是“a”,否则只向文件末尾追加。
2.你写入文件的时候加了字符吗?例如:分隔符
3.44字节的长度是如何得来的?你自己按照定义长度算的吗?这样是不准的,因为有内存对齐。用sizeof看一下结构体的长度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
okZword
2008-06-10 · TA获得超过100个赞
知道答主
回答量:76
采纳率:0%
帮助的人:110万
展开全部
应该是fseek(fp,(n-1)*44L,SEEK_SET);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不是很无知
2008-06-10 · TA获得超过677个赞
知道大有可为答主
回答量:2137
采纳率:0%
帮助的人:1420万
展开全部
这样写是可以的,你说的不行是什么意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式