| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1286 人关注过本帖
标题:求问?帮看下程序。为什么存入结构体至文件中其文件格式不是TXT而是“文件” ...
只看楼主 加入收藏
世界你好
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-12-12
收藏
得分:0 
回复 20楼 世界你好
我明白用fscanf和fprintf可以做,不过就相当于舍弃了地址,只要内容。
我就是在想书上都可以用fwrite和fread存取结构体。。。
2014-01-02 11:21
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:2 
回复 20楼 世界你好
char name[20]={0};
    FILE * fp;
    scanf("%s",name);  // 你是不是在这里输入的时候加的.txt?
大小写有没有区分?
错误在哪里产生的, 是什么样的?
你修改了什么?
要说详细.
2014-01-02 11:23
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
这代码看的都要吐了,不看了,难受,楼主自己先debug调试吧

总有那身价贱的人给作业贴回复完整的代码
2014-01-02 11:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
所謂的“文本文件”就是格式化的人可閲讀文件,要與二進制内存數據交互,必須經過翻譯。題目就是要求你做翻譯工作,不能貪省事用fwrite(),下精力寫兩個函數,一個是讀、一個是寫的函數,把數據格式進行轉換。鏈表的數據是由一個一個節點結構體構成的,你關鍵就是逐個節點處理,讀進來時就像原先構建鏈表時那樣一個一個地分配内存追加到鏈上,跟手工輸入鏈表數據時是一樣的。

但我可能要提醒你,題目要求的.txt文件,未必真是要格式化的數據文本,完全可以是二進制數據,那樣就可以用fwrite()/fread()函數對讀寫。也就是說,要準確理解文件格式的要求。

授人以渔,不授人以鱼。
2014-01-02 11:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 21楼 世界你好
看24樓的回覆,特別是最後一段。有事外出,你慢慢琢磨一下吧。

寫到外部設備中的鏈表,再讀入時是沒有可能保持原先的地址的!!!

[ 本帖最后由 TonyDeng 于 2014-1-2 11:29 编辑 ]

授人以渔,不授人以鱼。
2014-01-02 11:28
世界你好
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-12-12
收藏
得分:0 
回复 22楼 pangshch
就是在那加的TXT。读入没问题。是从文件中读东西出了问题。
2014-01-02 11:33
世界你好
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-12-12
收藏
得分:0 
回复 25楼 TonyDeng
这个我明白。都是野地址。
2014-01-02 11:35
bb659030105
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2013-12-26
收藏
得分:2 
回复 楼主 世界你好
之前有遇到相类似的问题:你可以尝试下在输入文件名那里,键入:XXX.TXT,这样子应该可以创立记事本文件了!
2014-01-02 15:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
鏈表儲存到外部設備後,結構體中的指針值是被作廢了,讀回來時必須重新搭鏈。fwrite(),祇是把數據内容寫出去,不是把數據的地址也寫出去(寫了也沒用,因爲讀回來時對應的地址可能已存在數據,那樣將會覆蓋有用的數據,屬於溢出錯誤,必須重新申請内存空間)。因此,這告訴你一個經驗,當結構體中存在指針類型的字段時,小心該指針所指向的對象失效,比如像char*這類的字段,你記錄的祇是指針值,卻沒有記錄它所指向的數據。

授人以渔,不授人以鱼。
2014-01-02 15:35
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:2 
w有新建功能么?我记得只是单纯的打开文件去进行写操作吧。如果没有像相应的文件。应该会出错吧。没尝试过。 w+才会有新建功能吧。如果没有文件 会创建一个文件然后进行写操作

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-01-02 16:47
快速回复:求问?帮看下程序。为什么存入结构体至文件中其文件格式不是TXT而是“ ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030354 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved