Sdílet prostřednictvím


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Přečte formátovaná data z konzoly.Tyto bezpečnější verze _cscanf, _cscanf_l, _cwscanf, _cwscanf_l mají rozšíření zabezpečení popsaná v tématu Funkce zabezpečení v CRT.

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

Toto API nelze použít v aplikacích, které jsou spuštěny v modulu 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
    Řetězec řízení formátu.

  • argument
    Volitelné parametry.

  • locale
    Použité národní prostředí.

Vrácená hodnota

Počet polí, které byly úspěšně převedeny a přiřazeny.Návratová hodnota nezahrnuje pole, které bylo přečteno, ale nepřiřazeno.Návratová hodnota je EOF pro pokus o čtení na konci souboru.Tato situace může nastat, když je vstup z klávesnice přesměrován na úrovni příkazového řádku operačního systému.Vrácená hodnota 0 znamená, že nebyla přiřazena žádná pole.

Tyto funkce ověřují své parametry.Pokud format je ukazatel s hodnotou null, tyto funkce vyvolají obslužnou rutinu neplatného parametru, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, vrátí tyto funkce EOF a errnose nastaví na EINVAL.

Poznámky

Funkce _cscanf_s načte data přímo z konzoly do míst daných argumentem argument.Funkce _getche se používá ke čtení znaků.Každý volitelný parametr musí ukazovat na proměnnou s typem, který odpovídá specifikátoru typů ve format.Formát řídí interpretaci vstupních polí a má stejnou formu a funkci jako parametr format funkce scanf_s.Zatímco _cscanf_s obvykle vrátí vstupní znak, neučiní tak, pokud poslední volání bylo _ungetch.

Podobně jako jiné bezpečné verze funkcí v rodině scanf,_cscanf_s a _cswscanf_s vyžadují argumenty velikosti pro znaky pole typu c, C, s, S a [.Další informace naleznete v tématu Specifikace šířky scanf.

[!POZNÁMKA]

Velikost parametru je typu unsigned, nikoli size_t.

Verze těchto funkcí s příponou _l jsou stejné s tím rozdílem, že používají parametr předané národní prostředí namísto aktuálního národní prostředí pro vlákno.

Rutinní mapování obecného textu

Rutina TCHAR.H

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_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é záhlaví

_cscanf_s,_cscanf_s_l

<conio.h>

_cwscanf_s, _cwscanf_s_l

<conio.h> nebo <wchar.h>

Další informace o kompatibilitě naleznete v tématu Kompatibilita.

Knihovny

Všechny verze běhových knihoven 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" );
}

Vstup

1 2 3

Výsledek

You entered 1 2 3

Viz také

Referenční dokumentace

I/O 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