2017-05-22 7 views
-2

Ich bin relativ neu in der Programmierung und lerne gerade C in der Schule. Ich studierte und stieß auf eine Frage und hatte Schwierigkeiten, die Antwort online zu finden, also entschied ich mich, meine eigene Frage zu stellen.C Conversion Specifier

Was bedeutet die Ganzzahl hinter dem% in einem Konvertierungsbezeichner?

Zum Beispiel habe ich festgestellt, dass% s manchmal als% 5s oder% -8s geschrieben wird.

Ich weiß, dass es mit Abstand zu tun hat und habe auch ein bisschen selbst experimentiert, aber ich habe Mühe, die Funktionalität der ganzen Zahlen genau zu bestimmen.

Alle anderen Worte des Rates oder Tipps werden sehr geschätzt. Vielen Dank!

+2

Überprüfen Sie die Hilfe von [printf] (http://www.cplusplus.com/reference/cstdio/printf/) und sehen, ob Sie können es selbst herausfinden. Überprüfen Sie die Beschreibungen der Formatspezifizierer-Subspezifikatoren. – rozina

+2

Siehe http://www.cplusplus.com/reference/cstdio/printf/ – rsp

+0

__R.T.F.M .__ (_''s hinzugefügt für Pause-Effekt_) :) –

Antwort

2

Vom C Standard (7.21.6.1 Die fprintf Funktion)

4 Jede Umwandlungsspezifikation wird durch das Zeichen% eingeführt. Nach dem%, die folgende erscheinen in der Reihenfolge:

...

- Eine optionale minimale Feldbreite. Wenn der konvertierte Wert weniger Zeichen als die Feldbreite hat, wird er mit Leerzeichen (standardmäßig) auf der linken Seite (oder rechts, wenn das linke Anpassungsflag, das später beschrieben wird, angegeben wurde) mit der Feldbreite aufgefüllt. Die Feldbreite nimmt die Form ein Sternchen * (später beschrieben), oder eine nicht-negative ganze Dezimalzahl

und weitere

5 Wie oben erwähnt, eine Feldbreite oder Präzision, oder beide können be wird durch ein Sternchen angezeigt. In diesem Fall liefert ein int-Argument die Feldbreite oder -genauigkeit . Die Argumente, die die Feldbreite oder die Genauigkeit oder beide angeben, müssen (in dieser Reihenfolge) vor dem zu konvertierenden Argument (falls vorhanden) angezeigt werden. Ein Argument für negative Feldbreite wird als als - Flag gefolgt von einer positiven Feldbreite genommen. Ein negatives Präzisionsargument wird genommen, als ob die Genauigkeit weggelassen würde.

Und endlich

6 Die Flaggenzeichen und deren Bedeutung sind:

  • Das Ergebnis der Umwandlung wird im Feld linksbündig. (Es ist rechtsbündig, wenn dieses Flag nicht angegeben.)