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