Was sind die Formatspezifizierer in c?


Beste Antwort

C hat viele Formatspezifizierer. Eine existiert offensichtlich für jeden Typ, aber darüber hinaus existieren andere, so dass ein Programmierer eine Variable eines bestimmten Typs in einigen verschiedenen Darstellungen anzeigen kann. Zum Beispiel gibt \% d eine Ganzzahl aus. Dieselbe Ganzzahl kann jedoch auch hexadezimal angezeigt werden, indem \% x verwendet wird. Eine Liste aller ursprünglichen C-Format-Spezifizierer finden Sie hier: Liste aller Formatspezifizierer in der C-Programmierung – Codeforwin

Ich empfehle jedoch, beim Schreiben Ihres C-Codes den moderneren Ansatz zu wählen, der damit zu tun hat Variablen deklarieren und entsprechend anzeigen. Dies bedeutet, dass Definitionen verwendet werden, die von und bereitgestellt werden. Durch Einfügen dieser Header können Sie Ihre Variablen jetzt wie folgt deklarieren:

Quelle: How to C (Stand 2016)

  • int8\_t, int16\_t, int32\_t, int64\_t – vorzeichenbehaftete Ganzzahlen
  • uint8\_t, uint16\_t, uint32\_t, uint64\_t -unabhängige Ganzzahlen
  • float – Standard-32-Bit-Floating point
  • double – 64-Bit-Standard-Gleitkomma
  • intptr\_t, uintptr\_t, ptrdiff\_t

Der letzte Aufzählungspunkt enthält Typen, die Sie für die Zeigerarithmetik verwenden können.

Bei solchen Typen können Sie sie wie folgt anzeigen:

  • size\_t\%zu
  • ssize\_t\%zd
  • ptrdiff\_t\%td
  • Rohzeige r-Wert – \%p (druckt Hex in modernen Compilern; Setzen Sie Ihren Zeiger zuerst auf (void *))
  • int64\_t"\%" PRId64
  • uint64\_t"\%" PRIu64 64-Bit-Typen sollten nur mit PRI[udixXo]64. Warum? Auf einigen Plattformen ist ein 64-Bit-Wert long und auf anderen „sa long long. Diese Makros bieten die richtige zugrunde liegende Formatspezifikation für alle Es ist tatsächlich unmöglich, eine korrekte plattformübergreifende Formatzeichenfolge ohne diese Formatmakros anzugeben, da sich die Typen unter Ihnen ändern (und denken Sie daran, dass das Umwandeln von Werten vor dem Drucken nicht sicher oder logisch ist).
  • intptr\_t"\%" PRIdPTR
  • uintptr\_t"\%" PRIuPTR
  • intmax\_t"\%" PRIdMAX
  • uintmax\_t"\%" PRIuMAX

Ein Beispiel für das Drucken eines dieser Typen:

printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);

Beachten Sie, dass das PRIdPTR außerhalb der Anführungszeichen liegt, jedoch direkt nach dem Prozentzeichen. Syntaktisch etwas ärgerlich in der Tat.

Wie auch immer, ich hoffe, dies beantwortet die meisten Ihrer Klos König für. Die Informationen zur moderneren Verwendung von C in Bezug auf Datentypen und deren Anzeige über spezielle Formatspezifizierer stammen aus einem großartigen Dokument. Ich empfehle, How to C (Stand 2016) .

Vergessen Sie auch nicht, dass Sie Formatspezifizierer und alles, was mit printf () zu tun hat, in den Manpages nachschlagen können. Wenn Sie sich auf einem UNIX- oder UNIX-ähnlichen System befinden, öffnen Sie einfach Ihre Shell und

bash$ man printf

Auch Google ist Ihr Freund…; -)

Antwort

Formatbezeichner beginnen mit einem Prozentsatz \% -Operator und gefolgt von einem Sonderzeichen zur Identifizierung des Datentyps.

Es gibt meistens 6 Arten von Formatspezifizierern , die in C verfügbar sind.

Liste der Formatbezeichner in C

Ganzzahliger Formatbezeichner\% d

Die \% d ist für die Darstellung ganzzahliger Werte implementiert. Dies wird mit der Funktion printf () zum Drucken des in der Variablen gespeicherten Ganzzahlwerts verwendet.

Syntax:

printf("\%d",);

Float-Formatbezeichner\% f

Die \% f Der Formatbezeichner ist für die Darstellung von Bruchwerten implementiert. Dies wird in der Funktion printf () implementiert, um den in der Variablen gespeicherten Bruch- oder Gleitwert zu drucken. Wann immer Sie gebrochene oder schwebende Daten drucken müssen, müssen Sie den Formatbezeichner \% f verwenden.

Syntax:

printf("\%f", );

Zeichenformatbezeichner \% c

Der Formatbezeichner \% c ist für die Darstellung von Zeichen implementiert. Dies wird mit der Funktion printf () zum Drucken des in einer Variablen gespeicherten Zeichens verwendet. Wenn Sie Zeichendaten drucken möchten, sollten Sie den Formatbezeichner \% c einfügen.

Syntax:

printf("\%c",);

Zeichenfolgenformatspezifizierer\% s

Das \% s Formatbezeichner ist für die Darstellung von Zeichenfolgen implementiert. Dies wird in der Funktion printf () zum Drucken einer in der Zeichenarrayvariablen gespeicherten Zeichenfolge verwendet. Wenn Sie eine Zeichenfolge drucken müssen, sollten Sie den Formatbezeichner \% s implementieren.

Syntax:

printf("\%s",);

Ganzzahliger Formatbezeichner ohne Vorzeichen\% u

Der \% u ist implementiert, um Werte von der Adresse einer Variablen mit vorzeichenloser Dezimalzahl im Speicher abzurufen. Dies wird in der Funktion printf () zum Drucken der vorzeichenlosen Ganzzahlvariablen verwendet.

Syntax:

printf("\%u",);

Long Int-Formatbezeichner\% ld

Der \% ld -Formatbezeichner wird zur Darstellung langer ganzzahliger Werte implementiert. Dies wird mit der Funktion printf () zum Drucken des in der Variablen gespeicherten langen Ganzzahlwerts implementiert.

Syntax:

printf("\%ld",);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.