Wie werden Zahlen in C zweistellig angezeigt?

Lesezeit: 2 Minuten

Für die C-Programmierung. Wie bekomme ich Zahlen, die als 00, 01, 02, 03 angezeigt werden, anstatt als 0, 1, 2, 3. Ich brauche nur 0 vor der Zahl bis 10.

Ich weiß, wenn Sie Dezimalzahlen machen, können Sie “%.2f” usw. machen, aber was ist umgekehrt für ganze Zahlen?

Hier ist, was ich benutze … **

printf("Please enter the hours: ");
    scanf ("%d",&hour);
printf("Please enter the minutes: ");
    scanf ("%d",&minute);
printf("Please enter the seconds: ");
    scanf ("%d",&second);
printf("%d : %d : %d\n", hour, minute, second);

}

Ich möchte, dass die Zahlen als 00: 00: 00 angezeigt werden

??

  • Muss ein Betrüger sein, oder?

    – Karl Norum

    31. Januar 2013 um 3:32 Uhr

Benutzeravatar von paxdiablo
paxdiablo

Sie müssen verwenden %02d wenn Sie möchten, dass führende Nullen auf zwei Leerzeichen aufgefüllt werden:

printf ("%02d : %02d : %02d\n", hour, minute, second);

Siehe zum Beispiel das folgende vollständige Programm:

#include <stdio.h>
int main (void) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Time is %02d:%02d:%02d.%06d\n", hh, mm, ss, dd);
    return 0;
}

was ausgibt:

Time is 03:01:04.000159

Denken Sie daran, dass die %02d bedeutet zwei Zeichen Minimum Breite, so dass es 123 ausgeben würde wie 123. Das sollte kein Problem sein, wenn Ihre Werte gültige Stunden, Minuten und Sekunden sind, aber es lohnt sich, daran zu denken, weil viele unerfahrene Programmierer den Fehler zu machen scheinen, dass 2 irgendwie das Minimum ist und maximale Länge.

  • Was ist die Lösung für die Abstimmung der maximalen Länge?

    – Rahman

    20. Juni 2017 um 13:24 Uhr

  • @rahman, es gibt keine gute Lösung für die Angabe der maximalen Länge. Wenn Sie den Wert haben 123 und Sie es in zwei Ziffern schnüren, erhalten Sie eine von 12 oder 23, je nachdem, wie Sie sich dafür entscheiden. Beides ist meiner Meinung nach nicht akzeptabel. Weit besser auszugeben ** als Hinweis darauf, dass etwas schrecklich schief gelaufen ist.

    – paxdiablo

    1. Juli 2020 um 13:57 Uhr

  • Dies funktioniert auch für hexa printf(“%02X”, … );

    – Stoica Mircea

    2. August um 14:25 Uhr

Verwenden Sie das Format: %02d stattdessen. Das 0 bedeutet, das Feld mit Nullen aufzufüllen und die 2 bedeutet, dass das Feld zwei Zeichen breit ist, sodass alle Zahlen, deren Anzeige weniger als 2 Zeichen erfordert, mit einer 0 aufgefüllt werden.

"%.2d" ist, was verwendet werden sollte. Die Regel ist im Grunde;

"%<minimum-characters-overall>.<minimum-digits>d".

Zum Beispiel:

"%6.3d" druckt insgesamt 6 Zeichen und mindestens 3 Ziffern.

1413050cookie-checkWie werden Zahlen in C zweistellig angezeigt?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy