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

2024-11-29 04:06:15
推荐回答(2个)
回答1:

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

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

读完当前结构体后,用memmove将未处理的内容前移到缓冲区开头。

回答2:

在C语言中,可以使用格式化输入函数fscnaf来解决上述问题,例如有文本文件的数据保存方式为:
12,13
34,56
......
则在fscnaf中可以按如下方法输入:
fscanf(fp,"%d,%d\n",&a,&b);