Sdílet prostřednictvím


_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 EOFa 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