C语言中 如何读取 以逗号分割的文件中 的数据(包括字符串)?

现在定义一个结构体:typedefstructNode{charisbn[14];charname[60];charauthor[20];charpublisher[20... 现在定义一个结构体:
typedef struct Node{
char isbn[14];
char name[60]; char author[20]; char publisher[20]; char date[9]; int num; float price; struct Node * next;}Node;

现在如何构造一个函数 读取 TXT文件中的 数据流:!?

txt文件中内容举例如下:
9787512322233,重视大脑的学习指南:Head First Python,Barry,中国电力出版社,20120301,68,
10,
9787302304319,学术研究:你的成功之道,凌晓峰,清华大学出版社,20121001,25,
15,

9787115248497,
软件框架设计的艺术,
JaroslavTulach,
人民邮电出版社,
20110401,
75,
7,

如何 构造函数 把以上数据读入对应的空间中!?
展开
 我来答
冰火梦幻
2013-12-30 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:425万
展开全部
每次用fgets读取整行,然后扫描一遍,看看逗号数量是不是足够一个完整结构体了。
如果不够,继续fgets,注意要读取到上一次fgets内容的末尾。然后再度检查逗号数量。

如果逗号数量够了(也就是内容已经足够一个结构体了),先去掉换行符。
然后每次先用strchr找到下一个逗号,再用strncpy将当前位置到下一个逗号的内容拷贝到结构体相应成员变量中。

读完当前结构体后,用memmove将未处理的内容前移到缓冲区开头。
freely_1985
2015-05-25 · TA获得超过1190个赞
知道小有建树答主
回答量:2807
采纳率:42%
帮助的人:436万
展开全部
在C语言中,可以使用格式化输入函数fscnaf来解决上述问题,例如有文本文件的数据保存方式为:
12,13
34,56
......
则在fscnaf中可以按如下方法输入:
fscanf(fp,"%d,%d\n",&a,&b);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式