_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l
Lesen formatierte Daten der Konsole.Diese sind sicherere Versionen von _cscanf, _cscanf_l, _cwscanf, _cwscanf_l mit Sicherheitserweiterungen, wie in Sicherheitsfeatures im CRT beschrieben.
Wichtig |
---|
Diese API kann nicht in den Anwendungen verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW. |
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 Gebietsschema zu verwenden.
Rückgabewert
Die Anzahl von Feldern, die erfolgreich konvertiert und zugewiesen wurden.Der Rückgabewert umfasst keine Felder, die gelesen wurden, jedoch nicht zugewiesen.Der Rückgabewert ist EOF für einen Versuch am Dateiende.Dies kann auftreten, wenn Tastatureingabe auf der Betriebssystembefehlszeilenebene umgeleitet wird.Ein Rückgabewert 0 bedeutet, dass keine Felder zugewiesen wurden.
Diese Funktionen überprüfen ihre Parameter.Wenn format ein NULL-Zeiger ist, rufen diese Funktionen den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen EOF zurück, und errno wird auf EINVAL festgelegt.
Hinweise
Die _cscanf_s-Funktion liest Daten direkt aus der Konsole in die Speicherorte, die von argument angegeben werden.Die _getche-Funktion wird verwendet, um Zeichen zu lesen.Jeder optionale Parameter muss ein Zeiger auf eine Variable mit einem Typ sein, der einem Typspezifizierer in format entspricht.Die Formatkontrollen die Interpretation der Eingabefelder und haben die gleiche Form und Funktion wie der format-Parameter für die scanf_s-Funktion.Während _cscanf_s normalerweise das Eingabezeichen Echo, verwendet er nicht so, wenn der letzte Aufruf von _ungetch war.
Wie andere sichere Versionen von Funktionen in der scanf Familie, benötigen _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, nicht size_t. |
Die Versionen dieser Funktionen mit dem _l Suffix sind identisch, allerdings verwenden den Gebietsschemaparameter in, der anstelle des aktuellen Threadgebietsschemas übergeben wird.
Zuordnung generische 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 Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.
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