scanf-Formatbezeichner

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu scanf, wscanf


In scanf-Format-Strings haben Formatbezeichner die folgende Form:

% [*] [Breite] [F|N] [h|l|L] Typzeichen

Jeder Formatbezeichner beginnt mit dem Prozentzeichen (%).

Auf das Prozentzeichen folgt eine der nachstehenden Angaben (in der aufgeführten Reihenfolge):

Komponente   Optional/Erforderlich Bedeutung

[*]

(Optional)

Zeichen für die Genauigkeit. Das Zeichen für die Genauigkeit ist ein Sternchen (*), nicht zu verwechseln mit dem Indirektionsoperator (Zeiger) in C.

Wenn in einem Formatbezeichner das Sternchen auf das Prozentzeichen (%) folgt, wird das nächste Eingabefeld durchsucht, aber nicht dem nächsten Adressargument zugewiesen.

Es wird davon ausgegangen, dass die unterdrückten Eingabedaten den Typ haben, der im auf das Sternchen folgenden Typzeichen angegeben ist.

[Breite]

(Optional)

Breitenbezeichner. Der Breitenbezeichner (n), ein dezimaler Integerwert, legt die maximale Anzahl von Zeichen fest, die aus dem aktuellen Eingabefeld gelesen werden sollen.

Es werden bis zu n Zeichen gelesen, konvertiert und in dem aktuellen Adressargument gespeichert. Enthält das Eingabefeld weniger als n Zeichen, liest die Funktion ...scanf alle Zeichen in dem Feld und fährt dann mit dem nächsten Feld und Formatbezeichner fort.

Der Erfolg der literalen Vergleiche und unterdrückten Zuweisungen ist nicht direkt bestimmbar.

Wenn die Funktion ...scanf auf ein Whitespace- oder nicht-konvertierbares Zeichen stößt, bevor "Breite" Zeichen gelesen wurden, werden:

  • Die Zeichen gelesen, konvertiert und die bisher gelesenen Zeichen gespeichert und dann
  • Mit dem nächsten Formatbezeichner fortgesetzt.

Ein nicht-konvertierbares Zeichen ist ein Zeichen, das entsprechend dem angegebenen Format nicht konvertiert werden kann (8 oder 9 bei einem oktalen Format, J oder K bei einem dezimalen oder hexadezimalen Format usw.).| align="left" valign="top" |

[F|N]

(Optional)

Modifizierer für die Zeigergröße. Überschreibt die Standardgröße des Adressarguments:

  • N=near-Zeiger
  • F=far-Zeiger

[h|l|L]

(Optional)

Modifizierer für den Argumenttyp. Überschreibt den Standardtyp des Adressarguments:

  • h=short int
  • l=long int, wenn Typzeichen eine Integer-Konvertierung festlegt
  • l=double, wenn Typzeichen eine Gleitkommakonvertierung festlegt
  • L=long double (nur gültig bei Gleitkommakonvertierungen)

Typzeichen

(Erforderlich)

Typzeichen


Siehe auch