Nunca puedo entender cómo imprimir unsigned long
tipo de datos en C.Cómo imprimirf "unsigned long" en C?
Supongamos unsigned_foo
es un unsigned long
, entonces trato:
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 imprimir algún tipo de -123123123
número en lugar de unsigned long
que tengo.
Vaya, '% lu' funcionó esta vez. Gracias. Algo más debe haber sucedido antes y no funcionó. – bodacydo
@bodacydo: si tiene un error, puede aparecer en forma semialeatoria ... asegúrese de que su variable tenga un valor válido antes de intentar imprimirlo. – Thanatos
Incluso si la variable no está inicializada, no debería haber forma de que printf llegue a un punto donde podría imprimir un signo menos cuando el especificador de formato era '% lu'. Técnicamente es un comportamiento indefinido, pero en realidad la variable tiene un valor impredecible que pasa a printf, que printf interpreta como unsigned. Supongo que el problema original de bodacydo fue el flujo de llegar a una llamada incorrecta de printf en lugar de la prevista ... –