_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l
Čtení formátovaných dat z konzoly.Jedná se o bezpečnější verze _cscanf, _cscanf_l, _cwscanf, _cwscanf_l s vylepšení zabezpečení, jak je popsáno v Funkce zabezpečení v CRT.
![]() |
---|
Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v systému Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
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
Řízení formátu řetězce.argument
Volitelné parametry.locale
Národní prostředí pro použití.
Vrácená hodnota
Počet polí, které byly úspěšně převedeny a přiřazena.Vrácená hodnota neobsahuje pole, které byly číst, ale nejsou přiřazeny.Vrácená hodnota je EOF k pokusu o čtení za koncem souboru.Tato situace může nastat, když je vstup z klávesnice je přesměrován na úrovni příkazového řádku operačního systému.Vrácená hodnota 0 znamená, že byla přiřazena žádná pole.
Tyto funkce ověření jejich parametrů.Pokud format je nulový ukazatel, tyto funkce vyvolat obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametrů.Pokud je povoleno zpracování, chcete-li pokračovat, tyto funkce vracejí EOF a errno je nastavena na EINVAL.
Poznámky
_cscanf_s Funkce načte data přímo z konzoly do umístění dán argument._Getche funkce se používá ke čtení znaků.Každý volitelný parametr musí být ukazatel na proměnnou typu, který odpovídá specifikátor typu v format.Ovládací prvky formátu výklad vstupní pole a má stejné formuláře a pracovat jako format parametr scanf_s funkce.Při _cscanf_s obvykle ozvěny vstupní znak, jeho není tak učinit, pokud poslední volání bylo _ungetch.
Podobně jako jiné bezpečné verze funkcí vscanf rodiny, _cscanf_s a _cswscanf_s vyžadují argumenty velikost znaků pro pole typu c, C, s, S, a [.Další informace naleznete v tématu Šířka specifikace scanf.
[!POZNÁMKA]
Typ parametru velikost je unsigned, nikoli size_t.
Verze těchto funkcí se _l přípony jsou shodné s tím rozdílem, že používají parametr locale předaný namísto aktuální národní prostředí pro vlákno.
Mapování rutiny obecného textu
TCHAR.Byla zahájena rutina h |
_UNICODE a _MBCS není definováno |
_MBCS, definice |
_UNICODE definována |
---|---|---|---|
_tcscanf_s |
_cscanf_s |
_cscanf_s |
_cwscanf_s |
_tcscanf_s_l |
_cscanf_s_l |
_cscanf_s_l |
_cwscanf_s_l |
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_cscanf_s,_cscanf_s_l |
<conio.h> |
_cwscanf_s, _cwscanf_s_l |
<conio.h> nebo <wchar.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Knihovny
Všechny verze C run-time libraries.
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" );
}
Vstup
1 2 3
Výsledek
You entered 1 2 3
Viz také
Referenční dokumentace
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l