Freigeben über


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Liest formatierte Daten aus der Konsole. Diese sichereren Versionen von _cscanf, _cscanf_l, _cwscanfhaben _cwscanf_l Sicherheitsverbesserungen, wie in den Sicherheitsfeatures im CRT beschrieben.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).

Syntax

int _cscanf_s(
   const char *format [,
   argument] ...
);
int _cscanf_s_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _cwscanf_s(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_s_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Parameter

format
Formatsteuerzeichenfolge.

argument
Optionale Parameter.

locale
Das zu verwendende Gebietsschema.

Rückgabewert

Die Anzahl der Felder, die erfolgreich konvertiert und zugewiesen wurden. Der Rückgabewert enthält keine Felder, die gelesen, aber nicht zugewiesen wurden. Der Rückgabewert ist EOF, wenn versucht wurde, am Dateiende zu lesen. Eine EOF Kann auch zurückgegeben werden, wenn Tastatureingaben auf der Befehlszeilenebene des Betriebssystems umgeleitet werden. Ein Rückgabewert von Null bedeutet, dass keine Felder zugewiesen wurden.

Diese Funktionen überprüfen ihre Parameter. Wenn format es sich um einen Nullzeiger handelt, rufen diese Funktionen den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die Ausführung fortgesetzt werden darf, werden diese Funktionen zurückgegeben EOFund errno auf EINVAL.

Hinweise

Die _cscanf_s-Funktion liest Daten direkt aus der Konsole in die Speicherorte, die von argument angegeben werden. Die _getche Funktion wird zum Lesen von Zeichen verwendet. Jeder optionaler Parameter muss ein Zeiger auf einen Variablentyp sein, der einem Typspezifizierer in format entspricht. Das Format steuert die Interpretation der Eingabefelder und weist dasselbe Formular und dieselbe Funktion wie der format Parameter für die scanf_s Funktion auf. Während _cscanf_s das Eingabezeichen normalerweise wiedergegeben wird, geschieht dies nicht, wenn der letzte Aufruf ausgeführt _ungetchwurde.

Wie andere sichere Versionen von Funktionen in der scanf Familie _cscanf_s und _cwscanf_s erfordern Größenargumente für die Typfeldzeichen c, C, s, S und [. Weitere Informationen finden Sie unter scanf Width Specification (scanf-Breitenangabe).

Hinweis

Der Größenparameter ist vom Typ unsigned und nicht vom Typ size_t.

Die Versionen dieser Funktionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch den ihnen übergebenen Gebietsschemaparameter anstelle des aktuellen Threadgebietsschemas.

Generische Textroutinzuordnungen

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_tcscanf_s _cscanf_s _cscanf_s _cwscanf_s
_tcscanf_s_l _cscanf_s_l _cscanf_s_l _cwscanf_s_l

Anforderungen

Routine Erforderlicher Header
_cscanf_s, _cscanf_s_l <conio.h>
_cwscanf_s, _cwscanf_s_l <conio.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Bibliotheken

Alle Versionen der C-Laufzeitbibliotheken.

Beispiel

// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
* and uses _cscanf_s to read in the response.
* Then _cscanf_s returns the number of items
* matched, and the program displays that number.
*/

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int result, n[3];
   int i;

   result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
   _cprintf_s( "\r\nYou entered " );
   for( i=0; i<result; i++ )
      _cprintf_s( "%i ", n[i] );
   _cprintf_s( "\r\n" );
}
1 2 3
You entered 1 2 3

Siehe auch

Konsole und Port-E/A
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l
scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l
sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l