_cgets_s
, _cgetws_s
Hämtar en teckensträng från konsolen. Dessa versioner av _cgets
och _cgetws
har säkerhetsförbättringar, enligt beskrivningen i Säkerhetsfunktioner i CRT-.
Viktig
Det här API:et kan inte användas i program som körs i Windows Runtime. Mer information finns i CRT-funktioner som inte stöds i Universella Windows Platform-appar.
Syntax
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
Parametrar
buffer
Lagringsplats för data.
numberOfElements
Buffertens storlek i enkla eller breda tecken, vilket också är det maximala antalet tecken som ska läsas.
pSizeRead
Antalet tecken som faktiskt lästs.
Returvärde
Returvärdet är noll om det lyckas. annars en felkod om ett fel inträffar.
Feltillstånd
buffer |
numberOfElements |
pSizeRead |
Återvända | Innehållet i buffer |
---|---|---|---|---|
NULL |
någon | någon | EINVAL |
n/a |
inte NULL |
noll | någon | EINVAL |
har inte ändrats |
inte NULL |
någon | NULL |
EINVAL |
sträng med noll längd |
Anmärkningar
_cgets_s
och _cgetws_s
läsa en sträng från konsolen och kopiera strängen (med null-avslut) till buffer
.
_cgetws_s
är funktionens breda teckenversion. förutom teckenstorleken är beteendet för dessa två funktioner identiskt. Den maximala storleken på strängen som ska läsas skickas som parametern numberOfElements
. Den här storleken bör innehålla ett extra tecken för avslutande null. Det faktiska antalet lästa tecken placeras i pSizeRead
.
Om ett fel inträffar under åtgärden eller vid valideringen av parametrarna anropas den ogiltiga parameterhanteraren enligt beskrivningen i Parameterverifiering. Om körningen tillåts fortsätta anges errno
till EINVAL
och EINVAL
returneras.
I C++förenklas användningen av dessa funktioner av överlagring av mallar. Överlagringarna kan härleda buffertlängd automatiskt, vilket eliminerar behovet av att ange ett storleksargument. De kan också automatiskt ersätta äldre, mindre säkra funktioner med sina nyare och säkrare motsvarigheter. Mer information finns i Skydda mallöverlagringar.
Felsökningsbiblioteksversionerna av dessa funktioner fyller först bufferten med 0xFE. Om du vill inaktivera det här beteendet använder du _CrtSetDebugFillThreshold
.
Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i global status i CRT-.
Allmän textrutinmappning
Tchar.h-rutin |
_UNICODE och _MBCS inte definierat |
_MBCS definierad |
_UNICODE definierad |
---|---|---|---|
_cgetts_s |
_cgets_s |
_cgets_s |
_cgetws_s |
Krav
Rutin | Obligatoriskt huvud |
---|---|
_cgets_s |
<conio.h> |
_cgetws_s |
<conio.h> eller <wchar.h> |
Mer kompatibilitetsinformation finns i Compatibility.