Come stampare "Unsigned Long" in c?
-
13-09-2020 - |
Domanda
Non posso mai capire come stampare il tipo di dati unsigned long
in c.
Supponiamo che unsigned_foo
sia un unsigned long
, allora provo:
- .
-
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)
e tutti stamano una sorta di numero di generatori di -123123123
invece di unsigned long
che ho.
Soluzione
%lu
è il formato corretto per unsigned long
.Sembra che ci siano altri problemi in gioco qui, come la corruzione della memoria o una variabile non inizializzata.Forse mostraci un'immagine più grande?
Altri suggerimenti
- .
-
%lu
per Unsigned Long -
%llu
per Unsigned Long Long
per int %d
per long int %ld
per Long Long Int %lld
per Unsigned Long Long Int %llu
Da tutte le combinazioni che hai provato, %ld
e %lu
sono gli unici che sono appositamente validi specificatori di formato di stampa.%lu
(lungo decimale non firmato), %lx
o %lX
(esagono lungo con lettere minuscole o maiuscole) e %lo
(lungo ottacolo) sono gli unici specificatori di formato validi per una variabile di tipo senza segno lungo (ovviamente è possibile aggiungere larghezza del campo, precisione,Modificatori ecc. I modificatori tra il %
e il l
).
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
.
Questo sarà utile...
Il formato è %lu
.
Si prega di verificare le varie altre altre tipo di dati e il loro utilizzo in printf qui
Il specificatore corretto per il non firmato lungo è %lu
.
Se non stai ottenendo il valore esatto che ti aspetti, allora potrebbero esserci alcuni problemi nel tuo codice.
Si prega di copiare il tuo codice qui.Allora forse qualcuno può dirti meglio a ciò che il problema è.
Ho avuto lo stesso problema.Prova "% ul", funziona per me.