Print Format Codes Binär Optionen
Printf und scanf-Format codes. number mit bis zu sechs Ziffern der Präzision, wissenschaftliche Notation. Footnote In printf werden die Ausdruckstyp Promotions erwartet - in einem Ausdruck werden char und short in int umgewandelt und float wird in double umgewandelt. C Entspricht eigentlich einem Parameter vom Typ int und f und g entspricht eigentlich den Parametern des Typs double. In printf gibt es also keinen Unterschied zwischen f und lf oder zwischen g und lg. In scanf ist also ein Zeiger auf die Variable Keine Art Promotionen auftreten oder werden erwartet Also f und lf sind ganz anders in scanf, aber das gleiche in printf. Personally, ich verwendet, um lg routinemäßig für doppelte in printf und scanf zu verwenden, aber das ist aus Gunst in diesen Tagen und in der Tat gcc Gibt Ihnen eine Warnmeldung für die Verwendung von lg in printf Die übliche Prozedur in diesen Tagen ist es, g für doppelt in printf und lg für doppelte in scanf verwenden Es spielt keine Rolle, die Sie für printf verwenden, weil die printf Bibliotheksfunktion behandelt sie auch, aber ich T s entscheidend, um es richtig für scanf. printf Format Modifikatoren. Modifikatoren erscheinen zwischen dem und dem Schlüssel letter. a Zahl ist eine Feldbreite. Und eine Zahl ist eine Präzision. Example printf 6 3f, 2 8 ergibt 2 800 mit einem Leerzeichen vor der 2.Note, dass 6 die 3 Dezimalstellen und die 1 - 6 Zeichen insgesamt So 6-3-1 2 Zeichen zu Die linke des Dezimalpunktes.0 die Ziffer Null bedeutet Pad mit Nullen bis Feldbreite in der Regel nur mit Integers verwendet. l der Buchstabe bedeutet lang, zB ld, um eine lange int in Dezimalformat zu formatieren. Example von 0. 2 3 ein Leerzeichen zwischen und 3.In 02d ist das 0 nicht Teil der Feldbreite Es ist ein Modifikator Zeichen Und wenn Sie eine Feldbreite haben, müssen Sie es so schreiben, dass es nicht mit einer Null beginnt und dann können Sie eine Null als Modifikator voranstellen Zeichen, wenn Sie das wollen. Formating Numeric Print Output. Earlier sahen Sie die Verwendung der Print - und Println-Methoden zum Drucken von Strings auf Standardausgabe Da alle Zahlen in Strings konvertiert werden können, wie Sie später in dieser Lektion sehen werden, können Sie diese Methoden verwenden Um eine beliebige Mischung aus Strings und Zahlen auszudrucken Die Java-Programmiersprache hat andere Meth - Ods, die es Ihnen erlauben, viel mehr Kontrolle über Ihre Druckausgabe zu üben, wenn Zahlen enthalten sind. Das printf und Format Methods. The Paket enthält eine PrintStream-Klasse, die zwei Formatierungsmethoden hat, die Sie verwenden können, um print und println zu ersetzen Diese Methoden, Format und printf sind einander gleichwertig Das Vertraute, das Sie verwendet haben, ist ein PrintStream-Objekt, so dass Sie PrintStream-Methoden aufrufen können. So können Sie das Format oder das Printup überall in Ihrem Code verwenden, wo Sie zuvor gedruckt oder gedruckt haben Zum Beispiel ist die Syntax für diese beiden Methoden die gleiche. Um Format ist ein String, der die Formatierung verwendet, die verwendet werden soll und args ist eine Liste der zu druckenden Variablen mit dieser Formatierung Ein einfaches Beispiel wäre. Der erste Parameter, Format Ist ein Formatstring, der angibt, wie die Objekte im zweiten Parameter args formatiert werden sollen. Der Formatstring enthält Klartext sowie Formatspezifizierer, die Sonderzeichen sind, die t formatieren Er Argumente von Object args Das Notation Object args heißt varargs, was bedeutet, dass die Anzahl der Argumente variieren kann. Format Spezifizierer beginnen mit einem Prozentzeichen und enden mit einem Konverter Der Konverter ist ein Zeichen, das die Art des zu formatierenden Arguments anzeigt Prozentzeichen und der Konverter können Sie optionale Flaggen und Spezifizierer haben Es gibt viele Konverter, Flaggen und Spezifizierer, die in dokumentiert sind. Hier ist ein grundlegendes Beispiel. Das d gibt an, dass die einzelne Variable eine Dezimalzahl ist. Das n ist ein Plattform - Unabhängiges Zeilenumbruchzeichen Die Ausgabe ist. Die Druck - und Formatmethoden sind überlastet Jeder hat eine Version mit der folgenden Syntax. Um die Nummern im französischen System zu drucken, wo ein Komma anstelle der Dezimalstelle in der englischen Darstellung von Gleitkommazahlen verwendet wird, Zum Beispiel würden Sie verwenden. Die folgende Tabelle listet einige der Konverter und Flags, die in der Beispiel-Programm verwendet werden, die die Tabelle folgt. Converters und Flags verwendet in. Ten cha Racters in der Breite, richtig gerechtfertigt, mit drei Stellen nach dem Dezimalpunkt. Das folgende Programm zeigt einige der Formatierungen, die du mit Format machen kannst. Die Ausgabe wird in doppelten Anführungszeichen im eingebetteten Kommentar angezeigt. Hinweis Die Diskussion in diesem Abschnitt behandelt nur die Grundlagen Der Format - und Printf-Methoden Weitere Details finden Sie im Basic IO-Bereich des Essential Trails auf der Seite "Formatierung". Verwenden Sie, um Strings zu erstellen, wird in Strings abgedeckt. DecimalFormat Class. Sie können die Klasse verwenden, um die Anzeige von führenden und Nachträgliche Nullen, Präfixe und Suffixe, die Gruppierung von Tausendertrennzeichen und das Dezimaltrennzeichen DecimalFormat bietet viel Flexibilität bei der Formatierung von Zahlen, aber es kann Ihren Code komplexer machen. Das folgende Beispiel schafft ein DecimalFormat-Objekt, myFormatter, indem es ein Pattern-String zum DecimalFormat-Konstruktor Die Formatmethode, die DecimalFormat von NumberFormat erbt, wird dann von myFormatter aufgerufen, das ein Double akzeptiert Wert als Argument und gibt die formatierte Nummer in einem String zurück. Hierbei handelt es sich um ein Beispielprogramm, das die Verwendung von DecimalFormat veranschaulicht. Die folgende Tabelle erklärt jede Zeile von output. There isn ta Binärkonvertierungsspezifizierer in glibc normal. Es ist möglich, benutzerdefinierte hinzuzufügen Umwandlungstypen in die printf-Familie von Funktionen in glibc Siehe registerprintffunction für Details Sie können eine benutzerdefinierte b-Konvertierung für Ihren eigenen Gebrauch hinzufügen, wenn es den Anwendungscode vereinfacht, um ihn zur Verfügung zu haben. Hier ist ein Beispiel für die Implementierung eines benutzerdefinierten printf-Formats in Glibc. Also, was Sie reden über wrt Umgang mit mehreren Ergebnissen nacheinander ist nicht reentrancy per se, sondern einfach nur der Fallout der Verwendung, was ein globales Objekt, um das Ergebnis zu speichern Die Funktion wird nicht wieder eingegeben In C die richtige , Oder zumindest weit verbreitet, idiom für den Umgang mit Funktionen, die ihre Ergebnisse in einem globalen Objekt speichern ist, um diese Ergebnisse sofort zu erhalten, um sie zu erhalten Dies hat den großen Vorteil, dass ich F nur ein Ergebnis ist zu einem Zeitpunkt erforderlich, dann ist keine zusätzliche Zuordnung notwendig Greg A Woods Nov 27 12 bei 0 51.Hier wir gehen müssen nicht zustimmen Ich kann nicht sehen, wie das Hinzufügen eines unauffälligen Präprozessor-Symbol kommt überall in der Nähe der Schädlichkeit der Begrenzung Die Verwendung Fälle schwer, so dass die Schnittstelle fehleranfällig, reservieren permanente Speicherung für die Dauer des Programms für einen temporären Wert, und generieren schlechter Code auf den meisten modernen Plattformen R Nov 27 12 bei 1 53.Die printf Familie ist nur in der Lage zu drucken In Basis 8, 10 und 16 mit den Standard-Spezifizierer direkt vorschlagen Schaffung einer Funktion, die die Zahl in einen String pro Code s bestimmte Bedürfnisse konvertiert. Alle anderen Antworten bisher haben mindestens eine dieser Einschränkungen. Setzen Sie statischen Speicher für den Rückkehrpuffer Dies begrenzt die Anzahl von Malen, die die Funktion als Argument für printf verwendet werden kann. Stellen Sie Speicher, der den Anrufcode benötigt, um Zeiger freizugeben. Erfordert den Anrufcode, um explizit einen passenden Puffer zu liefern. Call printf direkt Thi S verpflichtet eine neue Funktion für fprintf sprintf vsprintf etc. Verwenden Sie einen reduzierten Bereich von ganzen Zahlen. Das folgende hat keine der oben genannten Begrenzung Es erfordert C99 oder später und Verwendung von s Es verwendet ein zusammengesetztes Literal, um den Pufferplatz zu liefern Es hat keine Probleme mit mehreren Anrufen in einem printf. In diesem C Programmiersprache Tutorial nehmen wir einen weiteren Blick auf die printf-Funktion Wir werden uns anschauen, wie man Format-Spezifizierer verwenden, um formatierte Ausgabe auf den Bildschirm drucken Die Themen abgedeckt sind ein wenig printf Hintergrund, Format-Spezifizierer und Konvertierungen, Formatierung verschiedener Typen und Formatkonvertierungen von strings. printf Hintergrund. Die printf-Funktion ist nicht Teil der C-Sprache, da es keine Eingabe oder Ausgabe gibt, die in C-Sprache selbst definiert ist. Die printf-Funktion ist nur eine nützliche Funktion aus der Standardbibliothek Von Funktionen, die durch C-Programme zugänglich sind Das Verhalten von printf ist im ANSI-Standard definiert Wenn der Compiler, den Sie verwenden, mit diesem Standard übereinstimmt, dann alle Funktionen und D Eigenschaften sollten Ihnen zur Verfügung stehen. Format Specifiers. Es gibt viele Format-Spezifizierer in C definiert, werfen Sie einen Blick auf die folgende list. float siehe auch die Anmerkung unten. Note f steht für float, aber C-Sprache hat auch eine Sache namens Standard-Argument Promotions Default Argument Promotions passieren in Variablenfunktionen Variadische Funktionen sind Funktionen zB printf, die eine variable Anzahl von Argumenten annehmen Wenn eine Variadic-Funktion aufgerufen wird, nach lvalue-to-rvalue, Array-to-Pointer und Function-to-Pointer-Conversions Argument, das ein Teil der Variablen-Argument-Liste ist, wird zusätzlichen Konvertierungen unterzogen, die als Standard-Argument-Promotions bekannt sind. Float-Argumente werden in doppelte wie in Gleitkomma-Promotion. bool, char, short und unscoped Enumerationen werden in int oder breitere Integer-Typen umgewandelt konvertiert In der Integer-Promotion. So zum Beispiel werden Float-Parameter in Doppelte konvertiert, und Char s werden in int s konvertiert Wenn Sie tatsächlich benötigt haben, zum Beispiel ein char anstelle eines int, die f Unktion müsste es wieder umwandeln. Das ist genug auf dieser Seite Schritt der variablen Funktion und Standard-Argument Promotions. Let uns einen Blick auf ein Beispiel von printf formatierten Ausgabe, warum Sie hier, isn t it. Output der Quelle oben. Wie Sie in der ersten printf-Anweisung sehen können, drucken wir eine Dezimalstelle aus In der zweiten printf-Anweisung drucken wir die gleiche Dezimalzahl aus, aber wir verwenden eine Breite 3d, um zu sagen, dass wir drei Ziffernpositionen für die Ausgabe reservieren wollen. Das Ergebnis ist, dass zwei Leerzeichen sind Platziert vor dem Drucken des Zeichens In der dritten printf-Anweisung sagen wir fast die gleiche wie die vorherige drucken Sie die Ausgabe mit einer Breite von drei Ziffern, aber füllen Sie den Raum mit 0. In der vierten printf-Anweisung wollen wir einen float drucken In diesem printf Anweisung wollen wir drei Positionen vor dem Dezimalpunkt mit der Bezeichnung width und zwei Positionen hinter dem Dezimalpunkt als Präzision ausdrucken. Der in den printf-Anweisungen verwendete n wird als Escape-Sequenz bezeichnet. In diesem Fall steht ein Newline-Zeichen A Fter Druck etwas auf den Bildschirm Sie wollen in der Regel etwas auf der nächsten Zeile drucken Wenn es kein n gibt dann ein nächster printf Befehl wird die Zeichenfolge auf der gleichen Zeile drucken Häufig verwendete Escape-Sequenzen are. Let s nehmen einen anderen Blick auf eine printf formatierte Ausgabe In einer mehr Anwendung wie Beispiel. Output der Quelle oben. Sie können sehen, wir drucken die Fahrenheit Temperatur mit einer Breite von 3 Positionen Die Celsius-Temperatur wird mit einer Breite von 6 Positionen gedruckt und eine Präzision von 3 Positionen nach dem Dezimalpunkt Let S recap. D als Dezimal-Ganzzahl drucken. 6d als Dezimalzahl mit einer Breite von mindestens 6 breiten drucken. F als Fließpunkt drucken. 4f als Gleitkomma mit einer Breite von mindestens 4 breiten drucken. 4f als Fließkomma mit einer Präzision von vier Zeichen nach dem Dezimalpunkt drucken. 3 2f drucken als Fließkomma mindestens 3 breit und eine Präzision von 2.Formatierung andere Typen. Until jetzt haben wir nur Integer und Floats, aber es gibt mehr Arten, die Sie verwenden können Nehmen Sie einen Blick auf das folgende Beispiel. Output der Quelle Example. Note In der letzten printf-Anweisung wird nur das Prozentzeichen gedruckt. Die Nummer 10 in dieser Anweisung ist nicht wichtig, dass es nicht in der Ausgabe verwendet wird Also, wenn Sie eine Prozentzahl drucken möchten, würden Sie so etwas wie printf 2d n verwenden, 10 Die Ausgabe wird 10.Formating Strings. By jetzt haben Sie gesehen, die meisten der Format-Konvertierung möglich, aber es gibt einen Typ, der ein wenig anders ist und das sind String-Format-Conversions Werfen Sie einen Blick auf die folgenden Beispiel. Die Ausgabe der Beispiel oben. Sie können sehen, die Saitenformat-Konvertierung reagiert sehr unterschiedlich von Zahlenformat Conversions. Die printf sn, Hallo, Welt-Statement druckt die Zeichenfolge nichts Besonderes passiert. Die printf 15s n, Hallo, Welt-Statement druckt die Zeichenfolge, aber drucken 15 charac Wenn der String kleiner ist, werden die leeren Positionen mit dem Whitespace gefüllt. Der printf 10s n, Hallo, Weltaussage druckt den String, druckt aber nur 10 Zeichen des Strings. Printf -10s n, Hallo, Weltaussage druckt den String , Aber druckt mindestens 10 Zeichen Wenn der String kleiner ist, wird der Leerraum am Ende hinzugefügt. Siehe nächstes Beispiel. Das printf -15s n, Hallo, Weltaussage druckt den String, druckt aber mindestens 15 Zeichen. Der String ist in diesem Fall kürzer als Das definierte 15 Zeichen, also wird der Whitespace am Ende des Minuszeichens hinzugefügt. Printf 15s n, Hallo, Weltaussage druckt den String, druckt aber nur 15 Zeichen des Strings. In diesem Fall ist der String kürzer als 15 Die ganze Zeichenkette wird gedruckt. Der Ausdruck 15 10s n, Hallo, Weltaussage druckt den String, aber Druck 15 Zeichen Wenn der String kleiner ist, werden die leeren Positionen mit Whitespace gefüllt. Aber es wird nur maximal 10 Zeichen gedruckt Teil des neuen String alten String plus die Whitespace Positionen gedruckt wird. Der printf -15 10s n, Hallo, Welt-Statement druckt die Zeichenfolge, aber es tut genau das gleiche wie die vorherige Aussage, akzeptieren die Whitespace wird am Ende hinzugefügt. Ein wenig Warnung Die Printf-Funktion verwendet sein erstes Argument, um festzustellen, wie viele Argumente folgen und welche Arten sie sind Wenn Sie nicht genug Argumente verwenden oder wenn sie von der falschen Art sind, als printf wird verwirrt, mit als Ergebnis falsche Antworten. Das ist alles Für dieses C-Tutorial Machen Sie einfach einige Beispiele für Ihre eigenen, sie sind einfach zu machen Dies ist die einzige Möglichkeit zu lernen und zu sehen, wie das Format Conversions reagiert. Dieser Eintrag wurde in C Tutorials Sie können alle Antworten auf diesen Eintrag durch die RSS folgen 2 0 feed Beide Kommentare und Pings sind derzeit geschlossen Tweet Dies oder verwenden, um diesen Beitrag mit anderen zu teilen. Es gibt derzeit 145 Antworten auf C Tutorial printf, Format Specifiers, Format Conversions und formatierte Ausgabe. Warum lassen Sie uns nicht wissen, was Sie denken Indem Sie Ihre eigene comment. loganaayahee am 21. November 2012.Armando Problem Lösung. printf, arr 0 printf 9 3lf n, arr 1 printf 12 1lf n, arr 2.Thank Sie für Ihr Problem. jasleen am 25. November 2012.Sehr Schön erklärt. Suraj Rana am 27. November 2012.Thanx ein wirklich half mir mit meiner Prüfung vorbereitungen. janardhan am 5. Dezember 2012.thank du Herr, ist es nützlich. Thanks viel Sie sind sehr hilfreich für uns. very nützlich, prägnant Und complete. Crisp Klare Erklärung Thanxx. In C, printf ist eine leistungsstarke Funktion mit vielen Formaten fand ich ein sehr gutes Tutorial hier. Ese enlace pueden encontrar diversos ejemplos con el printf para conocer como formatear variablen y las prueben. relli gud tutorial thnx a lot. Sadam Hussain am 8. April 2013.Dies ist sehr hilfreich Ich mag es sehr, ich hoffe das wird für benificial sein Alle. Ich muss einen Schwimmer ausdrucken, der eine GPS-Koordinate in Dezimalwerten enthält, was -3 6 dh -123 123456 ist. Die letzte Ziffer 6 ist kritisch, da ich bis zu innerhalb von 3 Metern messen kann und eine genaue Protokollierung und Terminaldatenanalyse erfordert. Ist dort irgendeine Weise, den Wert zu drucken sowie das Schwimmen des Schwimmers in einen Schnur unter Beibehaltung der precision. float f2 -80 123456 sprintf op, string 3 6f, f2 printf op. returns string -80 123459.Is gibt es einen anderen Weg I Kann den Wert von einem String auf eine Dezimalzahl analysieren und die precision. char lesen 10 -80 123456 float lon 1000000 float atoi read printf lf 3 6f n, lon. returns lf -80000000 000000.Ich bin bereit, den Char-Wert in 3 Integer, hoch -80, Mitte 123, niedrig 456 aber nicht sicher, wie man pars E es in Teile unter Beibehaltung Präzision Wert Bereich 123 123456 bis -101 123456 als String gelesen. Ich muss etwas im Format 0 144231E-03 oder 0 88913E 03 etc so mit wissenschaftlichen Notation. Any Ideen Normal wissenschaftliche Notation zB 5 1498587E 03 oder 1 2039404-03 etc ist nicht gut, ich kann t verwenden, wenn für was ich tun muss. Ich hoffe, dass Sie erkennen, dass, wenn Ihr GPS ist genau auf 3 Meter, Sie werden nicht tatsächlich haben 3 Meter Genauigkeit, Unabhängig davon, wie viele Dezimalpunkte es berichtet. Regardieren Sie Ihre Speicherausgabe Einzelne Präzision Schwimmer haben höchstens 6 bis 9 Dezimalstellen der Präzision Bei der Umwandlung in eine Zeichenfolge, sind Sie im Wesentlichen die Erzeugung einer dezimalen Darstellung dieses Floats Dies bedeutet, dass Sie garantiert, dass a Zahl mit 6 Dezimalstellen kann zwischen einem Float hin und her konvertiert werden und es ist eine Stringdarstellung, die dezimal ist. Allerdings ist das, was hängt, von der Zahl ab, dh einige 7, 8 und 9 Ziffern Dezimalstellen können genau umgewandelt werden, während andere gewonnen haben T. So , In deinem Fall hast du eine 8-stellige Dezimalzahl, die du zum ersten Mal in Float umgewandelt hast, dann zurück zur Dezimalzahl in String-Form. Du solltest erwarten, dass die ersten 6 Ziffern höchstens passen werden. In deinem zweiten Beispiel hast du Atoi benutzt, das konvertiert Eine ascii-Zeichenfolge zu einer ganzen Zahl Integers sind ganze Zahlen Sie haben keine Dezimalpunkte Also, die Ausgabe ist genau das, was du hättest probieren müssen. Es hat mir geholfen, die Format-Spezifizierer schnell zu überarbeiten. Format Specifiers Escape Sequence. could jemand mir sagen, warum in der Syntax von printf und scanf 3 Punkte verwendet werden. thx bt i cnt verstehen die Bedeutung von d. Lilian am 10. September 2013. Ok Men, sehr gut. Was wird geschehen, wenn Wir überspringen die Scanf-Funktion Was ist h, u Specifiers. sailakshmi am 26. September 2013. Ich möchte einige Beispiele für die Verwendung von Zeichensatz in formatierten Input und output. mehwish am 26. September 2013.Plz Ich brauche einige Programme in Bezug auf Format Spezifizierer kann Eibe Jungs helfen mir in diesem. Amey Chaware am 2. Oktober 2013. Dieser Artikel löste alle meine Zweifel, danke so sehr Der String-Teil ist auch sehr klar erklärt. printf ff diese Aussage geben Fehler, printf dc diese geben Ausgabe als Müll Wert Warum. Steven Nguyen am 3. Oktober 2013.Wie zum Drucken große Zahl in der Format. sonu verma am 7. Oktober 2013.int 5 Printf d 46, i Was wird die Ausgabe und wie. Sonu verma Ist das überhaupt kompilieren Was willst du damit erreichen? Du fügst eine Konstante zu einem Format String Die Anwendung kann abstürzen oder man bekommt Müll Es hängt davon ab, was gespeichert wird 46 später nach d im Gedächtnis. Was ist die Verwendung von p In c. sir wie man das marksheet nur mit der printf-Anweisung mit width-spezifizierern macht. S ist Gebrauch für lesen string c ist für Charakter aber was ist Gebrauch von LF pls rply. what ist g steht für. Es ist sehr nützlich für mich. Seal help. MS SANDHYA am 19. Dezember 2013.how wird dies ausgeführt n 13224 Printf d, printf d, printf d, n. Verwenden Sie die kürzeste Darstellung e oder fi e wissenschaftlicher Mantissenexponent vs Floatdarstellung. Ich nehme an, dass seg int n 13224, ansonsten hat es t kompiliert Es wird nach normalen Klammerregeln ausgeführt Der innerste printf Wird zuerst den String 13224 ausgewertet, der ausgedruckt wird. Das Ergebnis wird dann auch an die mittlere printf übergeben, die eigentlich direkt nach dem vorherigen Ergebnis 13224 die Längenanzahl der Ziffern der innersten Saite ausstellt, dh 5, dann äußert das äußerste printf die Länge davon String dh Länge von 5, nämlich 1 Daher ist das Ergebnis 1322451.Giridhar am 29. Januar 2014.Is gibt es eine Möglichkeit, eine Ganzzahl mit dem Zeichen in den positiven Fall zu formatieren, i e. Aayushi Mishra am 28. Februar 2014.printf ddd Gibt Ausgabe 013 440 Warum. Hamza Saghir am 23. März 2014.Kann jemand plzz mir sagen, die Forma t Spezifizierer, wenn die Zahl ist 1 345 und seine angezeigte Ausgabe ist 1 35.varun Kumar am 12. April 2014.int a 20, b 30, c 40 printf ddd ausgang ist 40 30 20 Ich möchte den Grund hinter it. thanx das helfen mir eine Menge Ich werde auf der Prüfung auf diesem Dienstag wünschen mir Glück. Ich möchte nur mit Format Spezifizierer c drucken die int Datentyp Hex Datentyp Float Datentyp, wie man dieses prob. Printf Format Strings. By Alex Allain. By Standard, C bietet eine Menge Power für die Formatierung der Ausgabe Die Standard-Display-Funktion, printf, nimmt eine Format-String, mit dem Sie viele Informationen über, wie ein Programm ist formatiert. Hinweis, wenn Sie nach Informationen über die Formatierung Ausgabe in C suchen, werfen Sie einen Blick auf Formatierung C-Ausgabe mit iomanip. Let s Blick auf die Anatomie eines Format-String gefolgt von einigen kurzen Beispiel-Programme, um die verschiedenen Einstellungen in Aktion zu zeigen Ich gewann t alle jede mögliche mögliche Wahl - stattdessen mein Ziel Ist es einfach, die Mini-Sprache zu verstehen, die Sie für die Erstellung von Format-Strings verwenden können und lehren Sie, wie Sie die gängige Formatierung verwenden, die Sie am ehesten benötigen. Eine Anatomie eines Format-Strings. Wenn Sie einen Aufruf zu printf machen, Grundidee ist, dass Sie eine Reihe von Charakteren, die einige wörtliche Zeichen und einige Elemente, die ersetzt werden müssen, zum Beispiel eine Zeichenfolge wie. Will wird buchstäblich gedruckt werden, wie es scheint Während es manchmal genug ist, um buchstäblich in Ihre schreiben Code genau das, was Sie drucken möchten, möchten Sie in der Regel etwas fancier tun - entweder die Einführung von Sonderzeichen mit Escape-Sequenzen oder die Einführung von Variablenwerten mit Format spezifiziert. Escape Sequenzen. Es gibt einige Zeichen, die Sie nicht direkt in eine Zeichenfolge eingeben können Dies sind Zeichen Wie eine Zeilenumbrüche, die mit einer speziellen Syntax dargestellt werden müssen Diese werden als Escape-Sequenzen bezeichnet und sehen so aus. Hierher habe ich die Zeilenumbrüche zwischen jedem Buchstaben, a, b und c jeder Escap eingegeben E-Sequenz startet mit einem Backslash-Charakter Die Haupt-Escape-Sequenzen, die du verwenden wirst, sind n, um ein Zeilenumbruch zu setzen, und t, um eine Registerkarte zu setzen. Da ein Backslash normalerweise den Beginn einer Escape-Sequenz anzeigt, wenn du einen einsetzen willst Escape-Sequenz, die Sie verwenden müssen, um einen Backslash. is, wie Sie schreiben einen Windows-Pfad in C. There s ein weiterer erweiterter Trick, die ist, dass Sie schreiben können num, um das ASCII-Zeichen angezeigt durch den Wert num Dies ist nützlich, wenn Sie möchten ein Zeichen anzeigen, das Sie t leicht auf Ihre Tastatur eingeben können, z. B. akzentuierte Buchstaben. Zum Beispiel wird 130 in einigen Fällen ein Zeichen ausdrucken, je nachdem, was Ihr Gerät mit erweiterten ASCII-Zeichen eingerichtet hat. Format-Spezifizierer. Wenn Sie eine Abweichung in die Ausgabe einführen möchten, geben Sie dies an, indem Sie angeben, dass externe Daten benötigt werden. In dieser Zeichenfolge gibt das d an, dass der Wert, der an diesem Punkt in der Zeichenfolge angezeigt werden soll, aus einer Variablen genommen werden muss Zeichen bedeutet, dass wir spleißen Einige Daten in den String und das d-Zeichen zeigt an, dass wir in einer Dezimalzahl gespleißt werden. Der Teil des Strings, der damit beginnt, heißt das Format-Spezifizierer. Um diese Nummer tatsächlich zu erhalten, müssen wir diesen Wert drucken Wird angezeigt. Alle der interessanten Formatierung, die Sie tun können, beinhaltet das Ändern der Werte, die Sie nach dem Zeichen, das ist das eigentliche Format. Das Format für das, was über ein Zeichen ist. Most dieser Felder sind optional, außer der Bereitstellung einer Umwandlung Spezifizierer, die Sie bereits zum Beispiel gesehen haben, mit d, um eine Dezimalzahl auszudrucken. Diese Formatierung ist am besten getan, indem man rückwärts arbeitet, beginnend mit dem Konvertierungsspezifizierer und nach außen arbeiten. So lasst man am Ende beginnen. Conversion Specifier Spezifizierer ist der Teil des Format-Spezifizierers, der die grundlegende Formatierung des zu druckenden Wertes bestimmt. Konfigurations-Spezifizierer für Ganzzahlen. Wenn Sie eine Dezimal-Ganzzahl-Zahl in der Basis 0 drucken möchten, Se entweder d oder id oder i Wenn du eine Ganzzahl in Oktal oder Hexadezimal ausdrucken willst, benutest du o für oktale oder x für hexadezimal Wenn du Großbuchstaben A anstelle von einem wann du Dezimal 10 ausdrucke willst, kannst du X. Conversion verwenden Spezifizierer für Gleitkommazahlen. Displaying Gleitkommazahlen hat eine Tonne von verschiedenen Optionen, am besten in einer Tabelle gezeigt. Okay, das war nicht zu schlecht war es Aber das Diagramm ist irgendwie kompliziert Meine Empfehlung nur verwenden g, und es wird in der Regel tun Was Sie wollen. Wo wissenschaftliche Notation ist am besten geeignet. Displaying ein Prozentzeichen. Seit das Prozent-Zeichen verwendet wird, um Format-Spezifizierer zu definieren, gibt es eine spezielle Format Spezifizierer, das bedeutet, drucken die Prozentzeichen. to einfach ausdrucken ein Prozentzeichen. Jetzt, lassen Sie S Spaziergang durch jede der verschiedenen Komponenten eines Formats spezifizierer. Length Modifier. Der Längenmodifikator ist vielleicht seltsam benannt, es ändert nicht die Länge der Ausgabe Stattdessen ist es, was Sie verwenden, um die Länge der Eingabe Huh Say Sie Haben. Hier, d ist th E Eingang zu printf und was du sagst, ist, dass du d als doppeltes drucken willst, aber d ist kein Doppel, es ist ein langes Doppel Ein langes Doppel ist wahrscheinlich 16 Bytes im Vergleich zu 8 für ein Doppel, also der Unterschied Angelegenheiten Versuchen Sie, das kleine Snippet zu laufen, und Sie werden feststellen, dass Sie Müllausgabe erhalten, die so etwas aussieht. Erinnern Sie sich, die Bytes, die zu printf gegeben werden, werden wie ein Doppel behandelt - aber sie aren ta doppelt, sie sind ein langes Doppel Länge ist falsch, und die Ergebnisse sind hässlich. Der Längenmodifikator dreht sich alles um die Unterstützung von Print-Deal mit Fällen, wo Sie wieder mit ungewöhnlich großen oder ungewöhnlich kleinen Variablen. Der beste Weg, um über Länge Modifikatoren denken ist zu sagen, welche Variable Typ habe ich, Und brauche ich, um eine Längenmodifikator für sie zu verwenden Hier eine Tabelle, die Ihnen helfen sollte out. long double d 3 1415926535 printf Lg, dI d möchten besondere Erwähnung über die breite Charakter Handhabung Wenn Sie schreiben. without das l, das Ergebnis Wird es sein, ein einziges W auf den Bildschirm zu drucken. Der Grund ist tha T breite Zeichen sind zwei Bytes, und für einfache ASCII-Zeichen wie W ist das zweite Byte 0. Daher ist printf denkt, dass die Zeichenfolge fertig ist. Du musst printf nach Multibyte-Charakteren suchen, indem du das l ls addierst. Wenn du zufällig wprintf benutzt hast, kannst du einfach s verwenden und es wird nativ alle Strings als breite Zeichenfolgen behandeln. Der Präzisionsmodifikator ist geschrieben und hat etwas andere Bedeutungen für die verschiedenen Umwandlungsspezifizierer wie d oder g. Für die Gleitkommazahlen egf steuert sie die Anzahl der Ziffern, die nach dem Dezimalpunkt gedruckt werden. Wenn die angegebene Zahl mehr Präzision hat als gegeben ist, wird es umrunden. Zum Beispiel wird es angezeigt. Für g und G wird es kontrolliert Anzahl der signifikanten Zahlen angezeigt Dies wird nicht nur den Wert nach der Dezimalstelle, sondern die ganze Zahl beeinflussen. Für ganze Zahlen, auf der anderen Seite, die Präzision steuert es die minimale Anzahl von Ziffern gedruckt. Will drucken Sie die Nummer 10 mit drei Ziffern. Es gibt S ein spezieller Fall für ganzzahlige - wenn Sie 0 angeben, dann hat die Zahl null kein output. Final, für Strings, die Präzision steuert die maximale Länge des Strings angezeigt. Dies ist nützlich, wenn Sie sicherstellen müssen, dass Ihre Ausgabe geht nicht über eine feste Anzahl von Zeichen hinaus. Das Breitenfeld ist fast das Gegenteil des Präzisionsfeldes Präzision steuert die maximale Anzahl der zu druckenden Zeichen, die Breite steuert die Mindestzahl und hat das gleiche Format wie die Präzision, außer ohne Dezimalpunkt. Die Leerzeichen gehen am Anfang, standardmäßig. Sie können die Präzision und Breite kombinieren, wenn Sie Breite Präzision mögen. Beachten Sie die führende Leerzeichen. Die Flag-Einstellung steuert Zeichen, die zu einer Zeichenfolge hinzugefügt werden, z. B., ob sie 0x an eine Hexadezimalzahl anhängen oder ob sie mit 0summern platzieren möchten. Die spezifischen Flag-Optionen sind. Die Pound-Sign. Adding a wird ein 0 bei der Verwendung des o-Umwandlungsspezifizierers auf eine Oktalzahl vorangestellt werden, oder eine 0x, die bei der Verwendung von Axtkonvertierungsspezifizierer auf eine Hexadezimalzahl vorangestellt werden soll. Für die meisten anderen Umwandlungsspezifizierer wird das Hinzufügen eines Befehls einfach die Einbeziehung eines Dezimalpunkts erzwingen Die Nummer hat keine gebrochenen Teil. Und gedruckt, während. Ergebnis in einfach. Die Zero Flag 0.Using 0 wird die Nummer mit 0s gefüllt werden Dies ist nur wirklich wichtig, wenn Sie die Breite Einstellung verwenden, um für eine minimale Breite für Ihre Nummer zu fragen Zum Beispiel, wenn Sie schreiben. Das Pluszeichen Flag. Das Pluszeichen wird die Zeichen Spezifizierer für die Nummer. Das Minus Sign Flag. Finally, das Minuszeichen wird dazu führen, dass die Ausgabe linksbündig Dies ist wichtig, wenn Sie verwenden Der Breitspezifizierer und yo Du möchtest, dass die Polsterung am Ende der Ausgabe statt am Anfang erscheint. Mit der Auffüllung am Ende des Outputbining alles zusammen. Für jeden gegebenen Format-Spezifizierer können Sie immer das Prozentzeichen und den Basis-Spezifizierer geben Kann dann irgendwelche oder alle der Flaggen, Breite und Präzision und Länge, die Sie wollen, können Sie sogar mehrere Flaggen togeher gehören Hier ist ein besonders komplexes Beispiel, das mehrere Flaggen demonstriert, die für das Drucken von Speicheradressen als hexadezimale Werte nützlich sein würden. Der einfachste Weg Um zu lesen, ist es, zuerst das Zeichen zu bemerken und dann von rechts nach links zu lesen - das x zeigt an, dass wir einen hexadezimalen Wert ausdrucken, der 10 bedeutet, dass wir 10 Gesamtzeichen breiten wollen. Die nächste 0 ist eine Fahne, die anzeigt, dass wir mit padieren möchten 0s Intead von Leerzeichen, und schließlich das Zeichen bedeutet, dass wir eine führende 0x wollen Da wir mit 0x anfangen, bedeutet dies, dass wir 8 Ziffern haben - genau die richtige Menge zum Ausdrucken einer 32-Bit-Speicheradresse. Das endgültige Ergebnis ist. Lesen Sie mehr S Imilarartikel.
Comments
Post a Comment