如何创建 fscanf 格式字符串来接受空格和逗号 (,) 标记化
我有一些分析代码(myprog
),它使用以下命令吸收数据:
if(5 == fscanf(in, "%s%lf%f%f%f", tag, & sec, & tgt, & s1, & s2))
效果很好。但在我有用逗号分隔的数据文件的情况下,我目前正在执行以下操作:
sed 's/,/ /g' data | myprog
我可以修改 fscanf()
函数中的格式字符串以接受两者分隔格式?
I've got some analysis code (myprog
) that sucks in data using the following:
if(5 == fscanf(in, "%s%lf%f%f%f", tag, & sec, & tgt, & s1, & s2))
which works just fine. But in the situation where I've got data files that are separated by commas, I'm currently doing something like:
sed 's/,/ /g' data | myprog
Can I modify the format string in the fscanf()
function to accept both delimitation formats?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
应该工作吗?
Should work?
这个怎么样:
char tmp;
fscanf(in, "%s%c%lf%c%f%c%f%c%f", 标签, &tmp, & 秒, &tmp,& tgt, &tmp,& s1 , &tmp, & s2)
如果您不关心什么单个字符分隔您的值,只需读取它并将其存储在一次性变量中。
What about this:
char tmp;
fscanf(in, "%s%c%lf%c%f%c%f%c%f", tag, &tmp, & sec, &tmp,& tgt, &tmp,& s1, &tmp, & s2)
If you are not going to care what single character delimits your values, just read it and store it in a throw-away variable.