2017-07-08 335 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()更加穩定且具有錯誤抵抗能力。

相關問題