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 展开
我写的,但是不行,错在那里了
fseek(fp,n*44L,SEEK_SET);
其中n是表示第n个结构体,快啊,谁来帮帮我?
嗯,我行末加了换行符啊,还有用的制表符输入的数据
例子:向修改ping这行数据,结果就是这样
kaka' 20 w sd sdda
ping 29 w sdf sadf
PING 20 s sd sd 展开
5个回答
展开全部
你没有贴出源码,所以下面的修改意见也只是猜测,你可以试一下:
1. 你写入文件进是按一行一个结构体写入的,这时你有没有用换行符,如果有,你就要在fseek时加入换行符的字节。
2. n在fseek时要减1,fseek(fp,(n-1)*44L,SEEK_SET); 才是你要修改的数据。
1. 你写入文件进是按一行一个结构体写入的,这时你有没有用换行符,如果有,你就要在fseek时加入换行符的字节。
2. n在fseek时要减1,fseek(fp,(n-1)*44L,SEEK_SET); 才是你要修改的数据。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错是什么现象?窜位置了?还是其它错误?
可能的原因:
1.看看你文件的打开方式,不能是“a”,否则只向文件末尾追加。
2.你写入文件的时候加了字符吗?例如:分隔符
3.44字节的长度是如何得来的?你自己按照定义长度算的吗?这样是不准的,因为有内存对齐。用sizeof看一下结构体的长度。
可能的原因:
1.看看你文件的打开方式,不能是“a”,否则只向文件末尾追加。
2.你写入文件的时候加了字符吗?例如:分隔符
3.44字节的长度是如何得来的?你自己按照定义长度算的吗?这样是不准的,因为有内存对齐。用sizeof看一下结构体的长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是fseek(fp,(n-1)*44L,SEEK_SET);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样写是可以的,你说的不行是什么意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |