Freigeben über


_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

Liest formatierte Daten aus der Konsole. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l.

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( 
   const char *format [,
   argument] ... 
);
int _cscanf_l( 
   const char *format,
   locale_t locale [,
   argument] ... 
);
int _cwscanf( 
   const wchar_t *format [,
   argument] ... 
);
int _cwscanf_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.

Hinweise

Die _cscanf-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 die gleiche Form und Funktion wie der format-Parameter für die scanf-Funktion. Während _cscanf normalerweise das Eingabezeichen wiederholt, geschieht dies nicht, wenn zuletzt _ungetch aufgerufen wurde.

Diese Funktion überprüft ihre Parameter. Wenn "format" NULL ist, wird der ungültige Parameterhandler wie in Parametervalidierung beschrieben aufgerufen. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL gesetzt, und die Funktion gibt EOF zurück.

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

_cscanf

_cscanf

_cwscanf

_tcscanf_l

_cscanf_l

_cscanf_l

_cwscanf_l

Anforderungen

Routine

Erforderlicher Header

_cscanf,_cscanf_l

<conio.h>

_cwscanf, _cwscanf_l

<conio.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_cscanf.c
// compile with: /c /W3
/* This program prompts for a string
 * and uses _cscanf to read in the response.
 * Then _cscanf returns the number of items
 * matched, and the program displays that number.
 */

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int   result, i[3];

   _cprintf_s( "Enter three integers: ");
   result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
   // Note: _cscanf is deprecated; consider using _cscanf_s instead
   _cprintf_s( "\r\nYou entered " );
   while( result-- )
      _cprintf_s( "%i ", i[result] );
   _cprintf_s( "\r\n" );
}

Eingabe

1 2 3

Ausgabe

Enter three integers: 1 2 3
You entered 3 2 1

Siehe auch

Referenz

Konsole und Port-E/A

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

fscanf, _fscanf_l, fwscanf, _fwscanf_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

sscanf, _sscanf_l, swscanf, _swscanf_l