I'm reading book "C Programming A Modern Approach" and I see a question:
Show how can be distinguished: "%f" vs "%f "(after %f have a space) in function scanf().
Can you help me understanding how does "%f " work.
"%f" instructs scanf() to
stdin and discard white-space until no more input or a non-white-space encountered. Put that char back into stdin.char that represents a float. Continue until no more input or a non-float char encountered. Put that char back into stdin."%f " instructs scanf() to the steps 1 and 2 above and then
stdin and discard white-space until no more input or a non-white-space encountered. Put that char back into stdin. (just like step 1)Note: All scanf() format specifiers except "%c", "%n", "%[]" perform step 1 before scanning further.
The second one required a space followed by a float you entered. If you have multiple float to take from user then you can write something like -
scanf("%f %f", &f1, &f2);
"C" locale, white-spaces are space ' ', form feed '\f', new-line '\n', carriage return '\r', horizontal tab '\t', and vertical tab '\v'.if you use the white-space after %f, that is
scanf("%f ");
the scanf() will skip the line-feed character.
scanf()function in here. Read description offormat, answer of your question is explained so clearly.