Sdílet prostřednictvím


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

Důležitá poznámkaDůležité

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

I/O konzoly a Port

_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