Freigeben über


scanf-Typenfeldzeichen

Die folgenden Informationen gelten auf keine der scanf Familie von Funktionen, einschließlich die sicheren Versionen, wie scanf_s zu.

Das Zeichen type ist das einzige erforderliche Formatfeld; Hinter es alle optionalen Formatfelder. Das type Zeichen bestimmt, ob das entsprechende Argument als Zeichen oder Zeichenfolge, Zahl interpretiert wird.

Typzeichen für scanf Funktionen

Zeichen

Typ der Eingabe erwartet

Typ des Arguments

Größenargument in sicherer Version?

c

Char Wenn Sie mit scanf verwendet werden, wird, gibt an; Einzelbytezeichen wenn mit wscanf verwendet werden, wird, gibt Breitzeichen an. Leerzeichen, die normalerweise übersprungen werden, gelesen werden, wenn c angegeben wird. Um folgendes Nicht-weißLeerzeicheneinzelbytezeichen zu lesen, verwenden Sie %1s; um folgende Nicht-weißLeerzeichenbreitzeichen zu lesen, verwenden Sie %1ws.

Zeiger auf char, wenn mit scanf verwendet wird, funktioniert, Zeiger zu wchar_t, wenn mit wscanf verwendet wird, funktioniert.

Erforderlich. Größe enthält keine Leerzeichen für einen Nullterminator.

C

Gegenüberliegendes Größenzeichen. Wenn Sie mit scanf verwendet werden, wird, gibt an; Breitzeichen wenn mit wscanf verwendet werden, wird, gibt nebeneinander an. Leerzeichen, die normalerweise übersprungen werden, gelesen werden, wenn C angegeben wird. Um folgendes Nicht-weißLeerzeicheneinzelbytezeichen zu lesen, verwenden Sie %1s; um folgende Nicht-weißLeerzeichenbreitzeichen zu lesen, verwenden Sie %1ws.

Zeiger auf wchar_t, wenn mit scanf verwendet wird, funktioniert, Zeiger zu char, wenn mit wscanf verwendet wird, funktioniert.

Erforderlich. Größenargument enthält keine Leerzeichen für einen Nullterminator.

d

Dezimales ganze Zahl.

Zeiger auf int.

Anzahl

i

Eine ganze Zahl. Hexadezimal, wenn die Eingabezeichenfolge mit "0x" oder "0X" beginnt, oktal, wenn die Zeichenfolge mit "0 " beginnt; andernfalls Decimal.

Zeiger auf int.

Anzahl

o

Oktale ganze Zahl.

Zeiger auf int.

Anzahl

u

Dezimales ganze Zahl ohne Vorzeichen.

Zeiger unsignedint.

Anzahl

x

Hexadezimale ganze Zahl.

Zeiger auf int.

Anzahl

e, E, f, g, G

Der float-Wert, der optionalem Zeichen besteht (+ oder -), eine aus einem oder mehrere Dezimalstellen, die enthalten, Dezimaltrennzeichen und optionalem Exponenten ("e" oder "E") gefolgt von optional einen ganzzahligen Wert mit Vorzeichen.

Zeiger auf float.

Anzahl

n

Kein Eingabelesen dem Stream oder aus dem Puffer.

Zeiger int, in der gespeicherten Zahl Zeichen erfolgreich ist, Lese- dem Stream oder puffert bis zu diesem Punkt im aktuellen Aufruf scanf-Funktionen oder wscanf-Funktionen.

Anzahl

s

Zeichenfolge, bis zum ersten Leerzeichen (Leerzeichen, Zeilenvorschub oder Registerkarte). Um die Zeichenfolgen zu lesen, die durch Leerzeichen getrennt werden, verwenden Sie Satz eckige Klammern ([ ]), wie in scanf-Breitenangabe erläutert.

Wenn Sie mit scanf verwendet werden, wird, gibt Einzelbytezeichenarray an; wenn mit wscanf verwendet werden, wird, gibt Zeichenfeld an. In jedem Fall muss Zeichenarray groß genug für Eingabefeld plus NULL groß sein, das automatisch angefügt wird.

Erforderlich. Größeneinschließungsleerzeichen für einen Nullterminator.

S

Gegenüberliegend-Größenzeichenfolge, bis zum ersten Leerzeichen (Leerzeichen, Zeilenvorschub oder Registerkarte). Um die Zeichenfolgen zu lesen, die durch Leerzeichen getrennt werden, verwenden Sie Satz eckige Klammern ([ ]), wie in scanf-Breitenangabe erläutert.

Wenn Sie mit scanf verwendet werden, wird, gibt Zeichenfeld an; wenn mit wscanf verwendet werden, wird, gibt Zeichenfeld an. In jedem Fall muss Zeichenarray groß genug für Eingabefeld plus NULL groß sein, das automatisch angefügt wird.

Erforderlich. Größeneinschließungsleerzeichen für einen Nullterminator.

Die Bezeichner a und A (siehe printf-Typenfeldzeichen), können nicht mit scanf verfügbar.

Die Größenargumente sollten in die Parameterliste direkt nach dem Argument nach Bedarf übergeben werden, das sie anwenden. 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 string1 und eine Zeichenfolge mit einer maximalen Länge von 8 in string2. Die Puffergrößen sollten eine mindestens sein mehr als die Breitenangaben, da Platz zum Nullterminator reserviert werden muss.

Die Formatzeichenfolge kann Einzelbyte- behandeln, oder hat ein Breitzeichen unabhängig davon, ob das nebeneinander oder die Breitzeichen-Version der Funktion verwendet wird. Somit Einzelbyte- oder Breitzeichen mit Funktionen scanf und wscanf-Funktionen wie folgt lesen, Verwendungsformatbezeichner.

So wie Lesezeichen

Verwenden Sie die Funktion

Bei diesen Formatbezeichnern

Einzelbyte

scanf-Funktionen

c, hc oder hC

Einzelbyte

wscanf-Funktionen

C, hc oder hC

wide

wscanf-Funktionen

c, lc oder lC

wide

scanf-Funktionen

C, lc oder lC

Um Zeichenfolgen mit scanf-Funktionen und wscanf-Funktionen zu überprüfen, verwenden Sie die obige Tabelle mit Formattypspezifizierern s und S anstelle von c und C.

Siehe auch

Referenz

scanf, _scanf_l, wscanf, _wscanf_l