2010-08-20 3 views
7

Ich möchte ein vorzeichenloses int zu einem 8-stelligen langen String mit führenden Nullen formatieren. DieseWie formatiert unsigned int in 8-stellige Hexadezimalzahl?

ist das, was ich bisher:

unsigned int number = 260291273; 
    char output[9]; 
    sprintf(output, "%x", number); 
    printf("%s\n", output); // or write it into a file with fputs 

Prints "f83bac9", aber ich will "0f83bac9". Wie kann ich die Formatierung erreichen?

+1

Ich habe nicht downvote, aber ich könnte mir vorstellen, dass es für eine Frage ist, die einfach beantwortet werden kann, indem man in die Handbuchseite schaut. –

Antwort

5

Sie können Zero-Padding verwenden, indem Sie 0 und die Anzahl der gewünschten Ziffern angeben, zwischen % und dem Formattyp.

Zum Beispiel für hexadezimale Zahlen mit (mindestens) 8 Ziffern, dann würden Sie verwenden %08x:

printf("%08x", number); 

Ausgang (wenn number 500):

000001f4

Verwandte Themen