Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
How can printf use f for type double, if scanf requires lf?
Someone told me it was wrong to use %lf with printf. How can printf use %f for type double, if scanf requires %lf?
✍: Guest
It's true that printf's %f specifier works with both float and double arguments Due to the ``default argument promotions'' (which apply in variable-length argument lists values of type float are promoted to double, and printf therefore sees only doubles. (printf does accept %Lf, for long double.) scanf, on the other hand, accepts pointers, and no such promotions apply. Storing into a float (via a pointer) is very different from storing into a double, so scanf distinguishes between %f and %lf.
Here is a table listing the argument types expected by printf and scanf for the various format specifiers:
[TABLE GOES HERE]
(Strictly speaking, %lf is undefined under printf, though many systems probably accept it. To be portable, always use %f.)
2015-11-06, 1063👍, 0💬
Popular Posts:
what are the advantages of hosting WCF Services in IIS as compared to self hosting? There are two ma...
What is the purpose of finalization? The purpose of finalization is to give an unreachable object th...
How many bits are used to represent Unicode, ASCII, UTF-16, and UTF-8 characters? Unicode requires 1...
How Are Vertical Margins between Two Block Elements Collapsed? - CSS Tutorials - Understanding Multi...
What will be printed as the result of the operation below: main() { int x=20,y=35; x=y++ + x++; y= +...