2010-05-19 21 views
0

我有一些分析代码(myprog),在使用数据吮吸如下:如何创建一个的fscanf格式字符串接受空格和逗号(,)标记化

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

该工程只是罚款。但在我有由逗号分隔的数据文件的情况,目前,我正在做这样的事情:

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

我可以修改格式字符串的fscanf()功能同时接受划界格式?

回答

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

该工作吗?

+0

是的,我最初误读它...检查新版本:) – harald 2010-05-19 16:02:30

+0

修复第一个正则表达式('%[^,]'应该是'%[^,]'),我会给你投票。 现在我还不熟悉'*'说明符,谢谢。 – Jamie 2010-05-19 16:09:20

+0

你说得对,应该立即修复。 – harald 2010-05-19 17:43:56

0

这个怎么样:

char tmp; 的fscanf(在, “%S%C%LF%C%F%C%F%C%F”,标签,& TMP,&秒,& TMP,& TGT,& TMP,& S1,& TMP,& s2)

如果你不打算在乎单个字符是否划定你的值,只要阅读它并将其存储在一个抛弃变量中即可。

+0

如果没有空格怎么办? – Jamie 2010-05-19 22:08:01

+0

我只假设有一个来自原始问题的字符分隔符 - 实验是发现之母。 – LoudNPossiblyWrong 2010-05-20 14:27:30

相关问题