Freigeben über


_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.

Wichtiger HinweisWichtig

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.

HinweisHinweis

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

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