Introduction
The scanf placeholder consists of % at the beginning and a type indicator at the end. Apart from that it can have *, a maximum field-width indicator, and a type indicator modifier, for example,
%10.2f,%10d
Program/Example
Type indicators
-
d, i Used for signed integers; the expected argument should be a pointer to int.
-
o Used for unsigned int expected's value. It should be an integer in octal form.
-
U Unsigned integer in decimal form.
-
X, X Unsigned integer in hexadecimal form.
-
E, E, f, g, G Floating-point values.
-
S Character string. It matches a sequence of non-whitespace characters terminated by an end-of-line or end-of-file character. The additional argument should be a pointer to char and should point to an area that is large enough to hold the input string as well as the NULL terminator.
-
C Matches the number of characters according to a specified field-width. If no width is specified then a single character is assumed. The additional argument must be a pointer to char; the area pointed to should be large enough to hold the specified number of characters.
-
N Does not read any input but writes the number of characters so far in the target variable.
Use of *
The * is used to suppress input. For example, with %*d, if your input consists of 5 values and you want to ignore the middle 3 values, you can write:
scanf(" %d %*d %*d%*d %d ", &i, &j)
So, if your input is
10 20 30 40 50
it will get the value 10 and j will get the value 50. This is useful when you are getting the input from a file.
Field-width
It indicates the maximum number of characters that are read into the variables.
Explanation
-
scanf requires two inputs: the first is a string argument and the second is a set of additional arguments.
-
You can define how the input is to be taken by using placeholders.
No comments:
Post a Comment