Freigeben über


_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

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