_cscanf_s
, , _cscanf_s_l
_cwscanf_s
_cwscanf_s_l
Liest formatierte Daten aus der Konsole. Diese sichereren Versionen von _cscanf
, _cscanf_l
, _cwscanf
haben _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 EOF
und 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 _ungetch
wurde.
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.
Mapping generischer Textroutinen
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.
Libraries
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
Konsolen- 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