2012-08-27 16 views
10

Estoy tratando de tomar dos variables de entrada utilizando este fragmento de código: -Especificador de formato para la digitalización de largo sin signo int

unsigned int i; 

unsigned long int j; 

scanf("%u",i); 

scanf("%lu",j); 

Pero esto dará lugar a las siguientes advertencias: -

advertencia: formato ' % u 'espera el argumento de tipo' unsigned int * ', pero el argumento 2 tiene tipo' unsigned int '[-Wformat] advertencia: el formato'% lu 'espera el argumento de tipo' long unsigned int * ', pero el argumento 2 tiene type 'long unsigned int' [-Wformat] ¿Alguien puede explicarme qué está pasando aquí?

Respuesta

22

Necesita agregar un & principal, como scanf toma punteros a los parámetros de salida. De lo contrario, no puede escribirles.

scanf("%lu", &i); 
Cuestiones relacionadas