_cscanf_s
, _cscanf_s_l
, , _cwscanf_s
_cwscanf_s_l
Čte formátovaná data z konzoly. Tyto bezpečnější verze , , _cwscanf
_cwscanf_l
_cscanf_l
mají vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT._cscanf
Důležité
Toto rozhraní API nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.
Syntaxe
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] ...
);
Parametry
format
Řetězec řízení formátu
argument
Volitelné parametry.
locale
Národní prostředí, které se má použít
Vrácená hodnota
Počet polí, která byla úspěšně převedena a přiřazena. Vrácená hodnota neobsahuje pole, která byla přečtená, ale nepřiřazená. Vrácená hodnota je EOF
určena k pokusu o přečtení na konci souboru. Můžete EOF
také vrátit, když je vstup klávesnice přesměrován na úrovni příkazového řádku operačního systému. Návratová hodnota nuly znamená, že nebyla přiřazena žádná pole.
Tyto funkce ověřují své parametry. Pokud format
je ukazatel null, tyto funkce vyvolat neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je provádění povoleno pokračovat, vrátí tyto funkce EOF
a errno
je nastavena na EINVAL
.
Poznámky
Funkce _cscanf_s
čte data přímo z konzoly do umístění, která jsou uvedena .argument
Funkce _getche
se používá ke čtení znaků. Každý volitelný parametr musí být ukazatel na proměnnou s typem, který odpovídá specifikátoru typu v format
. Formát řídí interpretaci vstupních polí a má stejný formulář a funkci jako format
parametr funkce scanf_s
. Zatímco _cscanf_s
obvykle ozvěna vstupní znak, to nedělá to, pokud poslední volání bylo _ungetch
.
Stejně jako jiné zabezpečené verze funkcí v rodině a vyžadují argumenty velikosti pro znaky pole typu c, C, s, S, S a [._cwscanf_s
scanf
_cscanf_s
Další informace naleznete v tématu scanf Width Specification.
Poznámka:
Parametr velikosti je typu unsigned
, nikoli size_t
.
Verze těchto funkcí s příponou _l
jsou shodné s tím rozdílem, že používají parametr národního prostředí předaný místo aktuálního národního prostředí vlákna.
Mapování rutin obecného textu
Rutina TCHAR.H | _UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tcscanf_s |
_cscanf_s |
_cscanf_s |
_cwscanf_s |
_tcscanf_s_l |
_cscanf_s_l |
_cscanf_s_l |
_cwscanf_s_l |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_cscanf_s , _cscanf_s_l |
<conio.h> |
_cwscanf_s , _cwscanf_s_l |
<conio.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Knihovny
Všechny verze knihoven runtime jazyka C.
Příklad
// 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" );
}
1 2 3
You entered 1 2 3
Viz také
Vstupně-výstupní operace konzoly a portu
_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