搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 各位,你们看看为什么fwrite函数只能输出一组数据,程序能运行
标题:
各位,你们看看为什么fwrite函数只能输出一组数据,程序能运行
只看楼主
wangjialong
等 级:
论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
第
21
楼
得分:0
回复 18楼 zll310
你确定跟我说的改的一样后试的??
如果是的话你输入后找到那个文件看一下里面的数据,应该不会错。不过就是几组乱码。
新手发言,请多指教。
2013-01-11 23:29
wangjialong
等 级:
论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
第
22
楼
得分:0
以下是引用
TonyDeng
在2013-1-11 23:27:00的发言:
你这个函数每次都重新打开一次文件,写入一条记录的数据,没发现你有循环写入多个记录、也没发现你有定位文件位置的动作,怎么不该是每次覆盖第一条记录?都没说你每次不关闭文件造成的隐患,也没说你这样复制数据再写出是如何的多此一举了。
他那个循环在put函数中呢,我也觉得复制后写入好麻烦
新手发言,请多指教。
2013-01-11 23:31
zll310
等 级:
新手上路
帖 子:20
专家分:0
注 册:2013-1-11
第
23
楼
得分:0
回复 20楼 TonyDeng
那应该怎么改改阿,我已经做过好多的修改了,要不就是覆盖最后的要不就是覆盖前面的累
2013-01-11 23:32
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
24
楼
得分:0
首先,你不能把打开文件的动作写在这个函数中,这个函数每次只应该写入一条记录,直接把那个记录的指针传给函数,不用传整个数组,在外部调用处反复调用这个函数,每次更改一条记录。你整个架构错就错在每次都重新打开这个文件,那么它每次写入的位置就总是在文件的开始处,造成只有一条记录的结果。不需要在这里使用动态申请内存的,何况你原先的代码申请了也不释放,是大忌。
授人以渔,不授人以鱼。
2013-01-11 23:35
zll310
等 级:
新手上路
帖 子:20
专家分:0
注 册:2013-1-11
第
25
楼
得分:0
回复 21楼 wangjialong
我输入了2组数据,查找功能的时候还是把第一组数据覆盖掉了
2013-01-11 23:35
zll310
等 级:
新手上路
帖 子:20
专家分:0
注 册:2013-1-11
第
26
楼
得分:0
回复 24楼 TonyDeng
我使用了关闭指针的函数,可是还是查找不到我输入的第一组数据;
另外我只是想
把数据赋值给t方便以后的查找用指针
2013-01-11 23:38
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
27
楼
得分:0
你整个架构错就错在每次都重新打开这个文件,那么它每次写入的位置就总是在文件的开始处,造成只有一条记录的结果。
你都没有仔细看帖,其余的以后再说。在这个函数中与以后查找什么的完全没有关系,根本不需要有那样的想法。
授人以渔,不授人以鱼。
2013-01-11 23:40
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
28
楼
得分:0
告诉你这个函数的原型,你自己实现:
void
save(
struct
bk* record, FILE* fp);
授人以渔,不授人以鱼。
2013-01-11 23:42
zll310
等 级:
新手上路
帖 子:20
专家分:0
注 册:2013-1-11
第
29
楼
得分:0
回复 27楼 TonyDeng
那在不删除这个函数的前提下,我如何修改阿
2013-01-11 23:46
wangjialong
等 级:
论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
第
30
楼
得分:0
回复 23楼 zll310
照我那种改的话可以啊,我编了函数将输入数据打印出来了
以下是截图
新手发言,请多指教。
2013-01-11 23:50
38
3/4页
1
2
3
4
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-396313-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.474321 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved