Freigeben über


_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

Liest formatierte Daten aus der Konsole. Sicherere Versionen dieser Funktionen sind verfügbar; siehe _cscanf_s, , _cscanf_s_l, . _cwscanf_s_l_cwscanf_s

Hinweis

In Visual Studio 2015 wurden die printf Funktionen und scanf die Familie der Funktionen als inline und in die <stdio.h> Kopfzeilen deklariert und <conio.h> verschoben. Wenn Sie älteren Code migrieren, wird möglicherweise linker Error LNK2019 in Verbindung mit diesen Funktionen angezeigt. Weitere Informationen finden Sie unter Visual C++-Änderungsverlauf 2003 - 2015.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).

Syntax

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 Felder, die gelesen, aber nicht zugewiesen wurden. Der Rückgabewert ist EOF, wenn versucht wurde, am Dateiende zu lesen. Eine EOF Kann auch zurückgegeben werden, wenn Tastatureingaben auf der Befehlszeilenebene des Betriebssystems umgeleitet werden. Ein Rückgabewert von Null 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 _getche Funktion wird zum Lesen von Zeichen verwendet. Jeder optionaler Parameter muss ein Zeiger auf einen Variablentyp sein, der einem Typspezifizierer in format entspricht. Das Format steuert die Interpretation der Eingabefelder und weist dasselbe Formular und dieselbe Funktion wie der format Parameter für die scanf Funktion auf. Während _cscanf das Eingabezeichen normalerweise wiedergegeben wird, geschieht dies nicht, wenn der letzte Aufruf ausgeführt _ungetchwurde.

Diese Funktion überprüft ihre Parameter. Wenn das Format lautet NULL, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL festgelegt, und die Funktion gibt EOFbeschrieben.

Die Versionen dieser Funktionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch den ihnen übergebenen Gebietsschemaparameter anstelle des aktuellen Threadgebietsschemas.

Generische Textroutinzuordnungen

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" );
}
1 2 3
Enter three integers: 1 2 3
You entered 3 2 1

Siehe auch

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