如何创建fscanf格式字符串以接受空格和逗号(,)标记化

时间:2010-05-19 15:41:13

标签: c scanf

我有一些分析代码(myprog)使用以下内容来吸收数据:

 if(5 == fscanf(in, "%s%lf%f%f%f", tag, & sec, & tgt, & s1, & s2))

效果很好。但是在我有数据文件被逗号分隔的情况下,我现在正在做类似的事情:

 sed 's/,/ /g' data | myprog

我可以修改fscanf()函数中的格式字符串以接受两种分隔格式吗?

2 个答案:

答案 0 :(得分:1)

fscanf(in, "%[^, ]%*[, ]%lf%*[, ]%f%*[, ]%f%*[, ]%f", tag, &sec, &tgt, &s1, &s2)

应该有用吗?

答案 1 :(得分:0)

这个怎么样:

char tmp; fscanf(in,“%s%c%lf%c%f%c%f%c%f”,tag,& tmp,& sec,& tmp,& tgt,& tmp,& s1 ,& tmp,& s2)

如果您不关心单个字符是否界定您的值,只需阅读它并将其存储在一个抛弃变量中。