_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l
Liest formatierte Daten aus der Konsole. Diese sichere Versionen von _cscanf, _cscanf_l, _cwscanf, _cwscanf_l enthalten Sicherheitserweiterungen wie unter Sicherheitsfunktionen in der CRT beschrieben.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
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 nicht zugewiesenen gelesenen Felder. Der Rückgabewert ist EOF, wenn versucht wurde, am Dateiende zu lesen. Dies kann vorkommen, wenn Tastatureingaben auf der Befehlszeilenebene des Betriebssystems umgeleitet wurden. Ein Rückgabewert von 0 bedeutet, dass keine Felder zugewiesen wurden.
Diese Funktionen überprüfen ihre Parameter. Wenn format ein NULL-Zeiger ist, dann rufen diese Funktionen den Handler für ungültige Parameter auf, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, wird diese Rückhol- Funktionen EOF und errno auf EINVAL festgelegt.
Hinweise
Die _cscanf_s-Funktion liest Daten direkt aus der Konsole in die Speicherorte, die von argument angegeben werden. Die Funktion _getche wird verwendet, um Zeichen zu lesen. Jeder optionaler Parameter muss ein Zeiger auf einen Variablentyp sein, der einem Typspezifizierer in format entspricht. Das Format steuert die Interpretation der Eingabefelder und verfügt über das gleiche Formular und die gleiche Funktion wie der format-Parameter für die scanf_s-Funktion. Während _cscanf_s normalerweise das Eingabezeichen wiederholt, geschieht dies nicht, wenn zuletzt _ungetch aufgerufen wurde.
Wie andere sichere Versionen von Funktionen in der scanf - Familie, erfordern _cscanf_s und _cswscanf_s Größenargumente für die Typfeldzeichen c, C, s, S und [. Weitere Informationen finden Sie unter 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.
Zuordnung 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.
Bibliotheken
Alle Versionen 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" );
}
Eingabe
1 2 3
Ausgabe
You entered 1 2 3
Siehe auch
Referenz
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l