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

现在定义一个结构体:
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,

如何 构造函数 把以上数据读入对应的空间中!?

每次用fgets读取整行,然后扫描一遍,看看逗号数量是不是足够一个完整结构体了。
如果不够,继续fgets,注意要读取到上一次fgets内容的末尾。然后再度检查逗号数量。

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

读完当前结构体后,用memmove将未处理的内容前移到缓冲区开头。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-25
在C语言中,可以使用格式化输入函数fscnaf来解决上述问题,例如有文本文件的数据保存方式为:
12,13
34,56
......
则在fscnaf中可以按如下方法输入:
fscanf(fp,"%d,%d\n",&a,&b);
相似回答