Sscanf /sprintf usage

2 ビュー (過去 30 日間)
Eric
Eric 2012 年 5 月 11 日
Hello,
So, apparently I don't understand very basic I/O....can somebody help me?
if num=343.1; str=sprintf('%10.3f',num); numdata=sscanf(str,'%10.3f'); why does numdata ~= num ???
Now, I can make it work by simply saying: numdata=sscanf(str,'%f'); then numdata=num;
But, I would like to use the former formatted sscanf to check the formatting of an input file...

採用された回答

Sarah Wait Zaranek
Sarah Wait Zaranek 2012 年 5 月 11 日
I think this is your issue --
From doc for sscan - "Format specifiers for the reading functions sscanf and fscanf differ from the formats for the writing functions sprintf and fprintf. The reading functions do not support a precision field. The width field specifies a minimum for writing but a maximum for reading"
This code would work:
num=343.1;
str=sprintf('%10.3f',num);
numdata=sscanf(str,'%f');

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2012 年 5 月 11 日

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by