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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top