scanf () ignore la variable

En C, en utilisant scanf() avec les parameters, scanf("%d %*d", &a, &b) agit différemment. Il entre la valeur pour une seule variable et non deux!

S’il vous plaît expliquer cela!

 scanf("%d %*d", &a, &b); 

Le * signifie fondamentalement que le spécificateur est ignoré (l’entier est lu, mais n’est pas assigné).

Citation de man scanf :

  * Suppresses assignment. The conversion that follows occurs as usual, but no pointer is used; the result of the conversion is simply discarded. 

L’astérisque (*) signifie que la valeur pour le format sera lue mais ne sera pas écrite dans la variable. scanf n’attend pas de pointeur de variable dans sa liste de parameters pour cette valeur. Vous devriez écrire:

 scanf("%d %*d",&a); 

http://en.wikipedia.org/wiki/Scanf#Format_ssortingng_specifications

Un astérisque facultatif (*) juste après le symbole de pourcentage indique que la donnée lue par ce spécificateur de format ne doit pas être stockée dans une variable.