Eine Zeichenfolge kann formatiert werden, sie an die Konsole senden oder an eine Datei sendet. In diesem Tutorial wird die Formatierung einer Zeichenfolge unter Verwendung der Funktion printf () erläutert und sie an das Terminal (Konsole) sendet. In C ++ kann die printf () -Funktion durch Einbeziehung der Bibliothek verwendet werden.
Artikelinhalt
- Arithmetische Typen
- Variadische Natur von printf
- String -Typ
- Whitespace
- Abschluss
Arithmetische Typen
Arithmetische Typen sind ganzzahlige und schwimmende Typen. Betrachten Sie das folgende Programm:
#enthaltenDie Ausgabe ist:
etwas TextDas erste Argument für die Printf () -Funktion ist eine Zeichenfolge, die wörtlich ist. Das Newline-Charakter „\ n“ im String-Literal erzwingt alles, was als nächstes gedruckt werden kann, um in der nächsten Zeile gedruckt zu werden, auch wenn sich dieses Ding in den Doppelquoten befindet. Das "\ n" ist auch ein Whitespace -Charakter.
Mit Aufnahme von "#include" ist nicht wirklich notwendig.
Ganze Zahl
Betrachten Sie die folgenden printf () -Anweisungen:
printf ("Nummer ist: %i \ n", 52);Die Ausgabe ist:
Nummer ist: 52Der %i oder %d ist ein Beispiel für einen Formatspezifizierer. %I innerhalb des ersten Arguments der printf -Funktion, die ein Zeichenfolge ist, bedeutet, sich selbst durch den Ganzzahlwert zu ersetzen, der das nächste Argument der Printf -Funktion ist. %d ist ein Synonym für %i. Das „\ n“ spielt immer seine Rolle beim Senden des Sendens, was neben der nächsten Zeile am Terminal gedruckt werden soll. Ein Spezifizierer wie %i, der neben \ n eingegeben wird, stellt keinen Interessenkonflikt dar. Das zweite Argument für die Funktion printf () kann eine Variable sein.
Indem Sie sich durch den nächsten Argumentwert der Printf -Funktion ersetzen, soll der Spezifizierer auf den entsprechenden Wert erweitert werden. Hinweis: %I ist für eine Ganzzahl, während %F für eine Schwimmerzahl ist.
Wenn nun eine Null zwischen % und den tatsächlichen Spezifizierer eingefügt wird, i, ich, ich.e., %0i für 1 Null, dann werden 52 als 52 ausgegeben. Wenn es %02i ist, wird für 2 Nullen 52 weiterhin als 52 ausgegeben. Wenn es %03i ist, wird für 3 Nullen 52 als 052 ausgegeben. Eine Null wurde in der dritten Position aus dem rechten Ende der Zahl hinzugefügt. Wenn es %04i ist, werden 52 für 4 Nullen als 0052 ausgegeben, 0052. In der vierten Position wurden zwei Nullen hinzugefügt, um vom rechten Ende der Zahl zu zählen.
In diesem Zusammenhang wird Null als Flagge bezeichnet. Das folgende Programm zeigt dies:
#enthaltenDie Ausgabe ist:
Nummer ist: 52Null wird in diesem Zusammenhang eine Flagge bezeichnet. Eine weitere mögliche Flagge ist der Raum. Das folgende Programm zeigt dies für den Raum:
#enthaltenDie Ausgabe ist:
Nummer ist: 52Beachten Sie, dass im Formatspezifizierer kein Zeichen verwendet wird. Vor der Nummer wird eine Flag. Wenn die Anzahl der Positionen geringer ist als oder gleich der Anzahl der Ziffern, wird kein Flag hinzugefügt.
Feldbreite
Ein Feld ist die Anzahl der Zeichen, die für diese Nummer angezeigt werden können. Eine Feldbreite ist die maximale Anzahl von Zeichen, die der Programmierer erhofft. Die Feldbreite wird kurz nach dem Flag (rechts) im Formatspezifizierer eingefügt. Es ist dasselbe wie die vorherige Zahl. Wenn die Anzahl der angezeigten Zeichen von Natur aus größer ist als die Feldbreite, ermöglicht die Funktion printf () sie. Das folgende Programm zeigt dies:
#enthaltenDie Ausgabe ist:
Nummer ist: 001Schweben
Eine schwimmende Punktzahl ist eine Zahl mit dem Ganzzahl und einem Dezimalteil. Beachten Sie, dass der ganzzahlige Teil intern nicht als Ganzzahl dargestellt wird. Der tatsächliche Spezifizierer für den Float ist "f". Das folgende Programm zeigt dies:
#enthaltenDie Ausgabe für den Computer des Autors ist:
Nummer ist: 2.530000Diese Zahl hat natürlich 2 Dezimalstellen. Leider wurden 4 Dezimalstellen von 4 Nullen angehängt. Die Wahrheit ist, dass der Computer des Autors die Anzahl der Dezimalstellen auf 6 rundet. Es wird Nullen anhängen, um 6 Dezimalstellen auszugleichen, wenn die natürliche Anzahl von Dezimalstellen geringer ist. Die Anzahl der Dezimalstellen kann vom Programmierer entschieden werden. Es kann weniger oder gleich 6 sein oder es kann größer als 6 sein.
Diese Absicht erfordert eine andere Codekomponente, die als Präzisionskomponente bezeichnet wird, für den Formatspezifizierer. Es besteht aus dem Punkt und einer Zahl für die Anzahl der gewünschten Dezimalstellen. Das folgende Programm zeigt dies:
#enthaltenDie Ausgabe ist:
Nummer ist: 2.530000Beachten Sie, dass ".0 ”befindet sich in keinem der Spezifizierer.
Variadische Natur von printf
Das erste Argument der Printf () -Funktion ist eine Zeichenfolge, die wörtlich ist. Formatspezifizierer können innerhalb des Saitenliterales durchsetzt werden. Der erste Format -Spezifizierer von links im String -Literal entspricht dem zweiten Argument der Printf () -Funktion. Der zweite Formatspezifizierer von links im String -Literal entspricht dem dritten Argument der Printf () -Funktion. Der dritte Formatspezifizierer entspricht dem vierten Argument der Printf () -Funktion und so weiter. Das folgende Programm zeigt dies für die INT- und Float -Typen:
#enthaltenDie Ausgabe ist:
Die Zahlen sind 027 und 052 und 2.530
String -Typ
Der grundlegende String -Formatspezifizierer ist %s. Das folgende Programm zeigt die Verwendung:
#enthaltenDie Ausgabe ist:
Ich liebe dich.Das Zeichen '\ n' soll alles neben der nächsten Zeile senden, was gedruckt wird. Das erste Argument hier hat %s als Inhalt.
Die unterschiedlichen möglichen Möglichkeiten zur Verwendung von Zahlen mit dem String -Format -Spezifizierer sind wie folgt:
%numsEs gibt 11 Zeichen in der Zeichenfolge: „Ich liebe dich.”Der Punkt ist ein Charakter. Wenn Num weniger als 11 ist, wird die Ausgangszeichenfolge nicht abgeschnitten. Wenn es größer als 11 ist, werden links zusätzliche Räume gepolstert, um die Gesamtzahl der Zeichen im Feld zur angegebenen Zahl zu ermöglichen. Der folgende Code zeigt dies:
#enthaltenDie Ausgabe ist:
Ich liebe dich.Hier gibt es einen Punkt vor der Zahl. Der Punkt bedeutet hier, die Anzahl der Zeichen der angegebenen Nummer aus dem ersten Zeichen auszudrucken. Dies bedeutet, wenn Num geringer als die Gesamtzahl der Zeichen ist, schneiden Sie das Gleichgewicht rechts ab. Wenn Num mehr ist, fügen Sie auf dem Recht Räume hinzu, um die angegebene Nummer auszugleichen. Das folgende Programm zeigt dies:
#enthaltenDie Ausgabe ist:
Ich liebe, ich liebe dich.Diese Ausgabe braucht weitere Erklärungen. In der Saite „Ich liebe dich.\ n ”, es gibt 12 Zeichen. "\ N" ist ein Charakter. Die ersten 7 Charaktere sind "Ich liebe". Die erste Printf () -Funktion des Programms druckt Folgendes: „Ich liebe“ und verkürzt den Rest des String -Literales, einschließlich „\ n“, einschließlich „\ n“. Seit „\ n“ der ersten „Ich liebe dich.\ n “wurde abgenommen, was als nächstes gedruckt werden muss, wird in dieser Zeile gedruckt. Die zweite printf () -Funktion druckt seine 11 Zeichen. Der zwölfte Charakter, der „\ n“ ist, bewirkt, dass der Cursor in die nächste Zeile geht. Dann sollten 4 weitere Plätze als nächstes gedruckt werden.
%-numsHier gibt es einen Bindestrich vor der Zahl. Der Bindestrich bedeutet, die Anzahl der Zeichen der angegebenen Zahl aus dem ersten Charakter auszudrucken. Außerdem nicht abschneiden, wenn Num geringer ist als die Gesamtzahl der Zeichen. Fügen Sie einfach mehr Leerzeichen auf der rechten Seite hinzu, um die angegebene Zahl auszugleichen. Das folgende Programm zeigt dies:
#enthaltenDie Ausgabe ist:
Ich liebe dich.Der Cursor erscheint nach 4 zusätzlichen Leerzeichen in der dritten Zeile.
%.Num1-num2s, %-num1.Num2sDie Interpretation dieser beiden Elemente bleibt als Übung für den Leser.
Whitespace
Das "\ n" ist ein Beispiel für einen Whitespace -Charakter. Whitespace -Zeichen sind Fluchtsequenzen. Sie werden nicht gedruckt. Sie haben nur ihre individuellen Effekte. Zum Beispiel veranlasst „\ n“ den Cursor in die folgende Zeile. In den vorherigen Code -Beispielen wurde dieses „\ n“ im ersten Argument der Printf () -Funktion, einem String -Literal, eingesetzt. Es kann weiterhin als Variable verwendet werden, wie das folgende Programm zeigt:
#enthaltenDie Ausgabe ist:
erste LinieDas Folgende sind Whitespaces und ihre Bedeutungen:
\N: Fügen Sie eine neue Linie hinzu
\T: Horizontale Registerkarte
\ v: vertikale Registerkarte
\F: Formfutter
\ 040: Einzelraum durch Drücken der Space Bar -Taste
\R: Wagenrückgabe
Abschluss
String -Formatierung bedeutet, bestimmte Zeichen für eine Zeichenfolge, in bestimmten Positionen und bestimmte Reihenfolge zu platzieren. Dies beinhaltet auch die Einführung von Whitespace -Zeichen in bestimmten Positionen. C ++ 20 ist die neueste Version von C++. Es hat eine Formatbibliothek. Die meisten C ++ - Compiler haben diese Bibliothek jedoch noch nicht implementiert. Beachten Sie, dass die variadische Funktion printf () in die C ++ - Sprache aus der C -Sprache aufgenommen wird, ähnelt dem Zweck der Formatbibliothek. Das erste Argument für diese Funktion ist ein String buchstäblich. Die Formatspezifizierer sind innerhalb des Verschiebers durchsetzt. Die restlichen Argumente an die printf () -Funktion entsprechen diesen Spezifikatoren in der Reihenfolge.