Dela via


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

Se även

-konsolen och port-I/O-
_getch, _getwch