Cómo printf "unsigned long" en C?
-
13-09-2020 - |
Pregunta
Nunca puedo entender cómo imprimir unsigned long
el tipo de datos en C.
Supongamos que unsigned_foo
es un unsigned long
, entonces yo trate de:
printf("%lu\n", unsigned_foo)
printf("%du\n", unsigned_foo)
printf("%ud\n", unsigned_foo)
printf("%ll\n", unsigned_foo)
printf("%ld\n", unsigned_foo)
printf("%dl\n", unsigned_foo)
Y todos ellos de impresión algún tipo de -123123123
el número en lugar de unsigned long
lo que tengo.
Solución
%lu
es el formato correcto para unsigned long
.Suena como que hay otras cuestiones en juego aquí, como los de corrupción de memoria o una variable no inicializada.Tal vez nos muestran una imagen más grande?
Otros consejos
%lu
para unsigned long%llu
para unsigned long long
Para int %d
Para long int %ld
Para long long int %lld
Para unsigned long long int %llu
De todas las combinaciones que intentó, %ld
y %lu
son los únicos que son válidos printf especificadores de formato en absoluto. %lu
(largo decimal sin signo), %lx
o %lX
(largo hexagonal con letras mayúsculas o minúsculas), y %lo
largo (octal) son los únicos válidos especificadores de formato para una variable de tipo unsigned long (por supuesto, usted puede agregar el campo ancho, precisión, etc modificadores entre el %
y el l
).
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
Esto será de gran ayuda ...
El formato es %lu
.
Por favor, compruebe acerca de los distintos tipos de datos y su uso en el printf aquí
La correcta especificador para el unsigned long es %lu
.
Si usted no está recibiendo el valor exacto que usted está esperando, a continuación, puede haber algunos problemas en el código.
Por favor, copie el código aquí.Entonces tal vez alguien puede decir mejor lo que es el problema.
Yo tenía el mismo problema.Tratar de "%ul", a mí me funciona.