2017-07-08 330 views
-1

我有一个字符串,如: string line="Name &0.11/-0.11 &0.11/0.11 &0.03/0.03 \\";如何使用sscanf提取浮点数?

而且我想提取的名字和所有浮点数,我想:

sscanf(line,"%s %*[&]%f%*[/]%f %*[&]%f%*[/]%f %*[&]%f%*[/]%f %*[\\]",systname,&sig_up,&sig_down,&prompt_up,&prompt_down,&Vgam_up,&Vgam_down);

但它没有工作,并得到了错误:Error: sscanf parameter mismatch param[0] C u 有人可以帮忙吗?谢谢。

+0

哦,甜美的主。当然,你首先分割字符串,然后分别解析元素并不是更好? –

+0

您发布的代码的作品https://ideone.com/90jxiV请检查您的问题并提供一个重现您问题的示例。 –

+1

是不是'%* [&]'等同于'&'? – melpomene

回答

0

%f在printf()及其系列中匹配double,在scanf()及其系列中匹配float。通常你想要以双精度工作,所以你需要%ff for scanf()。

但是strtod()更加稳定且具有错误抵抗能力。

相关问题