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?
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, 743👍, 0💬
Can you tell me how to check whether a linked list is circular? Create two pointers, and set both to...
Assuming that the structure of a table shows two columns like this: --------+------------+-- ----+---...
How can we format data inside DataGrid? Use the DataFormatString property.
How To Insert Multiple Rows with a SELECT Statement? - MySQL FAQs - Managing Tables and Running Quer...
Does it matter in what order catch statements for FileNotFoundException and IOExceptipon are written...