C语言链表和文件操作

这里说下p是一个结构指针变量而first也是一个结构指针变量。first指针是链表的头结点。为什么我这样做不能从Excel导出信息来。另外我能把链表的结点数据存入Exce... 这里说下 p是一个结构指针变量 而first也是一个结构指针变量。 first指针是链表的头结点。为什么我这样做不能从Excel导出信息来。另外我能把链表的结点数据存入Excel中 但就是导不出来,试了好多种方法都不行 求大神解决 展开
 我来答
幻形术
2018-06-12 · TA获得超过1262个赞
知道小有建树答主
回答量:994
采纳率:81%
帮助的人:264万
展开全部

扩展名为xls的文件是office的excel文件,这是一种二进制文件。(当然不排除是一种挂羊头卖狗肉的文本文件,这种情况不考虑。)

你说你能写进去,貌似看你用了fprintf写文件吧,没错,但是fprintf是写文本文件的,按一定格式写的文本。你用\t作分隔输出的文件类似逗号分隔的csv文件,是可以被Excel识别并打开的,没错。

但是,fread是读取二进制文件的函数,如果文件中是纯文本,你用fread去读当然是错的,如果文件中是二进制,你用fread也不可能读成你想要的结构体。如果你的xls文件是Excel的原生二进制文件,那就更不可能是你用fread能读出来的,得用专门的库,如微软官方的office com库。

不知你明不明白二进制文件和文本文件的区别.

当然如果你读的那个xls文件就是你用fprintf写进去的文件,请用fscanf函数按照写时候的格式去读才行。自己看看fscanf函数,跟scanf类似。

更多追问追答
追问
嗯 大佬 你说的都对 但我把fread换成fsanf也还是读不出来  会不会是 我那样用链表遍历读取不行 格式错误啊
追答
你读的xls文件是哪来的,是你自己用fprintf写的?还是说是用excel保存出来的?如果是Excel保存来的,那你放弃吧,那是二进制文件,你不知道人家内部的数据二进制序列化规则,靠fread这种裸api是读不到想要的数据的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式