Sdílet prostřednictvím


_cgets_s, _cgetws_s

Získá řetězec znaků z konzoly. Tyto verze _cgets a _cgetws mají vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

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

errno_t _cgets_s(
   char *buffer,
   size_t numberOfElements,
   size_t *pSizeRead
);
errno_t _cgetws_s(
   wchar_t *buffer
   size_t numberOfElements,
   size_t *pSizeRead
);
template <size_t size>
errno_t _cgets_s(
   char (&buffer)[size],
   size_t *pSizeRead
); // C++ only
template <size_t size>
errno_t _cgetws_s(
   wchar_t (&buffer)[size],
   size_t *pSizeRead
); // C++ only

Parametry

buffer
Umístění úložiště pro data

numberOfElements
Velikost vyrovnávací paměti v jednobajtů nebo širokých znaznachech, což je také maximální počet znaků, které se mají přečíst.

pSizeRead
Početznakůch

Vrácená hodnota

Vrácená hodnota je nulová, pokud je úspěšná; v opačném případě kód chyby, pokud dojde k chybě.

Chybové podmínky

buffer numberOfElements pSizeRead Zpět Obsah buffer
NULL jakékoliv jakékoliv EINVAL Není k dispozici
ne NULL žádný jakékoliv EINVAL neupraveno
ne NULL jakékoliv NULL EINVAL Řetězec nulové délky

Poznámky

_cgets_s a _cgetws_s načtěte řetězec z konzoly a zkopírujte řetězec (s ukončovacím znakem null) do buffer. _cgetws_s je širokoúhlá verze funkce; jiné než velikost znaku, chování těchto dvou funkcí je stejné. Maximální velikost řetězce, který se má přečíst, se předá jako numberOfElements parametr. Tato velikost by měla obsahovat nadbytečný znak pro ukončující hodnotu null. Skutečný počet přečtených znaků je umístěn v pSizeRead.

Pokud během operace nebo při ověřování parametrů dojde k chybě, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, errno je nastavena na EINVALhodnotu a EINVAL je vrácena.

V jazyce C++ je použití těchto funkcí zjednodušeno přetížením šablony. Přetížení mohou odvodit délku vyrovnávací paměti automaticky, což eliminuje potřebu zadat argument velikosti. Můžou také automaticky nahradit starší, méně zabezpečené funkce novějšími a bezpečnějšími protějšky. Další informace naleznete v tématu Přetížení šablon zabezpečení.

Verze knihovny ladění těchto funkcí nejprve vyplní vyrovnávací paměť 0xFE. Chcete-li toto chování zakázat, použijte _CrtSetDebugFillThreshold.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Rutina Tchar.h _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_cgetts_s _cgets_s _cgets_s _cgetws_s

Požadavky

Rutina Požadovaný hlavičkový soubor
_cgets_s <conio.h>
_cgetws_s <conio.h> nebo <wchar.h>

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

Viz také

Vstupně-výstupní operace konzoly a portu
_getch, _getwch