Sscanf /sprintf usage

7 views (last 30 days)
Eric
Eric on 11 May 2012
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...

Accepted Answer

Sarah Wait Zaranek
Sarah Wait Zaranek on 11 May 2012
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');

More Answers (1)

Walter Roberson
Walter Roberson on 11 May 2012

Community Treasure Hunt

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

Start Hunting!