_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
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l