C语言关于fscanf的一些疑问

读取已经格式化了的TXT文件,文件中内容的格式如下
001, jack,20;
004,jason,23;
(至举例其中两行。共六行)
先想通过fscanf把每行用逗号隔开的三个输入存入链表中。不修改TXT文件。该如何做到

第1个回答  2014-01-06
你好!
你可以把数据之间用空格分开,这样好读取,因为 fscanf 读取时遇到空格会结束;追问

数据不允许动的 这是上级的要求 - -

追答

那就按行每行读取成字符串,然后用逗号分割字符串

追问

怎么做呢

第2个回答  2014-01-07
int num; char name[30]; int age; fscanf(p_file,"%d,%[^','],%d;",&num,name,&age);
%[^','] 读字符串到name中的时候读到逗号 ',' 停止追问

试过了 但还是不行

追答

你没按格式写啊..格式控制里面是逗号不是空格..还有name本身就是一个指针吧,不需要再取地址了..
我昨天还测试了一下的,能读写...不过是三个变量,没有用结构体而已,这个应该没影响..格式控制写好..
还有一种可能就是你的文件是以什么样的形式写入的,这个必须考虑...我是以字符串形式写入..

本回答被提问者采纳
第3个回答  2014-01-06
你这一行相当于一个字符串,','和‘;’都是字符串的一部分,fscanf没法区分,所一你只能读出来在做处理,遇到','分割,遇到';'结束追问

怎么做呢~

相似回答