scanf Typ-Feld-Zeichen
Die folgenden Informationen gelten für alle scanf-Funktionsreihe, einschließlich der sicheren Versionen, wie scanf_s.
Das type erforderliche Format ist das einzige Zeichen im Feld. Es wird nach allen optionalen Feldern Format.Das type Zeichen bestimmt, ob das zugeordnete Argument als Zeichenfolge oder ein Zeichen Nummer interpretiert wird.
Typzeichen für scanf Funktionen
Zeichen |
Typ der Eingabe erwartet |
Der Typ des Arguments |
Größen - Argument in der sicheren Version? |
---|---|---|---|
c |
CharWenn Sie mit scanf verwendet werden kann, gibt Einzelbytezeichen; Wenn Sie mit wscanf verwendet werden, arbeitet, gibt Breitzeichen dargestellt.Leerzeichen, die normalerweise gelesen werden, werden übersprungen, wenn c angegeben wird.Um beim Nicht-weiß SPACE-Einzelbytezeichen zu lesen, verwenden Sie %1s. Nicht-weiß nachfolgendes um SPACE-Breitzeichen zu lesen, verwenden Sie %1ws. |
Zeiger auf char , wenn er mit scanf verwendet wird, arbeitet, Zeiger auf wchar_t , wenn er mit wscanf verwendet wird, funktioniert. |
Erforderlich.Größe enthält keine Leerzeichen für ein NULL-Abschlusszeichen. |
C |
Gegenüberliegendes Größen Zeichen.Wenn Sie mit scanf verwendet werden kann, gibt Breitzeichen angefügt. wenn Sie mit wscanf verwendet werden, arbeitet, gibt Einzelbytezeichen an.Leerzeichen, die normalerweise gelesen werden, werden übersprungen, wenn C angegeben wird.So lesen SPACE-Einzelbytezeichen nachfolgenden Nicht-weiß, verwenden Sie %1s. SPACE-Breitzeichen Nicht-weiß nachfolgendes zu lesen, verwenden Sie %1ws. |
Zeiger auf wchar_t , wenn er mit scanf verwendet wird, arbeitet, Zeiger auf char , wenn er mit wscanf verwendet wird, funktioniert. |
Erforderlich.Größen - Argument enthält keinen Platz für ein NULL-Abschlusszeichen. |
d |
Dezimale ganze Zahl. |
Zeiger auf int. |
Nein. |
i |
Eine ganze Zahl.Hexadezimale Zahle, wenn die Eingabezeichenfolge mit „0x“ oder „0X“ beginnt, oktal, wenn die Zeichenfolge mit „0" beginnt, andernfalls Dezimalzahl. |
Zeiger auf int. |
Nein. |
o |
Oktale ganze Zahl. |
Zeiger auf int. |
Nein. |
u |
Dezimale ganze Zahl ohne Vorzeichen. |
Zeiger auf unsignedint. |
Nein. |
x |
Hexadezimale ganze Zahl. |
Zeiger auf int. |
Nein. |
e, E, f, g, G |
Der Gleitkommawert, der optionalem Vorzeichen (+ oder –) besteht, aus einer Reihe von einer oder mehreren Dezimalstellen, die Dezimaltrennzeichen enthalten und optionalem Exponenten (E „oder „e““) gefolgt von einem optional ganzzahligen Wert mit Vorzeichen. |
Zeiger auf float. |
Nein. |
n |
Keine Eingaben aus dem Stream oder Puffer. |
Zeiger auf int, in der gespeicherten Anzahl von Zeichen aus dem Stream gelesenen erfolgreich ist, oder aus dem Puffer bis zu diesem Punkt im aktuellen Aufruf von scanf-Funktionen oder Funktionen wscanf . |
Nein. |
s |
Zeichenfolge (bis zum ersten Leerzeichen oder Tabstopps, Leerzeichen (Zeilenvorschub).Um die Zeichenfolgen nicht lesen, die durch Leerzeichen getrennt von eckigen Klammern ([ ]), wie in scanf Breitenangabeerläutert. |
Wenn Sie mit scanf verwendet werden kann, gibt Einzelbytezeichen array an. wenn Sie mit wscanf verwendet werden, arbeitet, gibt Zeichenfeld an.In beiden Fällen muss Zeichenarray genug für Eingabefeld plus null groß sein, das automatisch angefügt wird. |
Erforderlich.Größe enthält Platz für ein NULL-Abschlusszeichen. |
S |
Gegenüberliegend-SIZE-Zeichenfolge, bis zum ersten Leerzeichen oder Tabstopps, Leerzeichen (Zeilenvorschub).Um die Zeichenfolgen nicht lesen, die durch Leerzeichen getrennt von eckigen Klammern ([ ]), wie in scanf Breitenangabeerläutert. |
Wenn Sie mit scanfverwendet werden kann, gibt Zeichenfeld an. wenn Sie mit wscanfverwendet werden, arbeitet, gibt Zeichenfeld an.In beiden Fällen muss Zeichenarray genug für Eingabefeld plus null groß sein, das automatisch angefügt wird. |
Erforderlich.Größe enthält Platz für ein NULL-Abschlusszeichen. |
Die a und A Bezeichner (siehe printf-Typ-Feld-Zeichen) sind nicht mit scanfverfügbar.
Die Größen bestehenden sollten in der Parameterliste nach Bedarf direkt nach dem Argument übergeben werden, die sie angewendet werden soll.Folgender Code z. B.:
char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);
liest eine Zeichenfolge mit einer maximalen Länge von 10 in string1und eine Zeichenfolge mit einer maximalen Länge von 8 in string2.Die Puffergrößen müssen mindestens eine als Breitenangaben, da mehr Platz für das NULL-Abschlusszeichen reserviert werden muss.
Die Formatzeichenfolge kann unabhängig von Einzelbyte- oder Breitzeichen Mauseingabe behandelt, ob das Einzelbytezeichen oder eine Breitzeichen-Version der Funktion verwendet werden.Daher Einzelbyte oder scanf mit Breitzeichen wscanf Features und Funktionen wie folgt verwenden, lesen formatbezeichner.
Zum Lesen von Zeichen, z. |
Verwenden Sie diese Funktion |
Mit diesen Formatbezeichnern |
---|---|---|
einzelnes Byte |
scanf-Funktionen |
c, hc oder hC |
einzelnes Byte |
wscanf-Funktionen |
C, hc oder hC |
weit |
wscanf-Funktionen |
c, lc oder lC |
weit |
scanf-Funktionen |
C, lc oder lC |
Wenn Sie Zeichenfolgen mit scanf-Funktionen und wscanf-Funktionen zu validieren, verwenden Sie die obigen Tabelle mit typspezifizierern Format s und S anstelle c und C.