What is the difference between %*c%c and %c as a format specifier to scanf?
c, special-characters
Solution
In a `scanf` format string, after the `%`, the `*` character is the assignment-suppressing character.
In your example, it eats the first character but does not store it.
For example, with:
char a;
scanf("%c", &a);
If you enter: `xyz\n`, (`\n` is the new line character) then `x` will be stored in object `a`.
With:
scanf("%*c%c", &a);
If you enter: `xyz\n`, `y` will be stored in object `a`.
C says specifies the `*` for `scanf` this way:
(C99, 7.19.6.2p10) Unless assignment suppression was indicated by a *, the result of the conversion is placed in the object pointed to by the first argument following the format argument that has not already received a conversion result.
Problem
I typically acquire a character with `%c`, but I have seen code that used `%*c%c`. For example: ``` char a; scanf("%*c%c", &a); ``` What is the difference?