web-dev-qa-db-fra.com

Spécificateur de format pour la numérisation d'un entier long non signé

J'essaie de prendre deux variables en entrée en utilisant cet extrait de code: -

unsigned int i;

unsigned long int j;

scanf("%u",i);

scanf("%lu",j);

Mais cela donne lieu aux avertissements suivants: -

avertissement: le format '% u' attend l'argument de type 'unsigned int *', mais l'argument 2 a le type 'unsigned int' [-Wformat] avertissement: le format '% lu' attend l'argument de type 'long unsigned int *', mais l'argument 2 a le type 'long unsigned int' [-Wformat] Quelqu'un peut-il m'expliquer ce qui se passe ici?

11
user1391362

Vous devez ajouter un leader &, car scanf prend pointeurs aux paramètres de sortie. Sinon, il ne peut pas leur écrire.

scanf("%lu", &i);
23
md5