Partager via


_cgets_s, _cgetws_s

Obtient une chaîne de caractères à partir de la console. Ces versions et ont des améliorations de _cgets_cgetwssécurité, comme décrit dans les fonctionnalités de sécurité dans le CRT.

Important

Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

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

Paramètres

buffer
Emplacement de stockage des données.

numberOfElements
Taille de la mémoire tampon en caractères larges ou codés sur un octet, qui correspond aussi au nombre maximal de caractères à lire.

pSizeRead
Nombre de caractères véritablement lus.

Valeur retournée

La valeur de retour est égale à zéro en cas de réussite ; sinon, un code d'erreur est retourné en cas de défaillance.

Conditions de l’erreur

buffer numberOfElements pSizeRead Renvoie Contenu de buffer
NULL tous tous EINVAL n/a
non NULL zero tous EINVAL non modifié
non NULL tous NULL EINVAL chaîne de longueur nulle

Notes

_cgets_s et _cgetws_s lisent une chaîne à partir de la console et copient la chaîne (avec une marque de fin null) dans buffer. _cgetws_s est la version à caractères larges de la fonction ; hormis la taille de caractères, le comportement de ces deux fonctions est identique. La taille maximale de la chaîne à lire est passée en tant que paramètre numberOfElements. Cette taille doit inclure un caractère supplémentaire pour le caractère null de fin. Le nombre réel de caractères lus est placé dans pSizeRead.

Si une erreur se produit pendant l’opération ou dans la validation des paramètres, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, errno est définie EINVALsur , et EINVAL est retournée.

En C++, l’utilisation de ces fonctions est simplifiée par les surcharges de modèle. Les surcharges peuvent déduire automatiquement la longueur de la mémoire tampon, ce qui élimine la nécessité de spécifier un argument de taille. Ils peuvent également remplacer automatiquement les fonctions plus anciennes et moins sécurisées par leurs équivalents plus récents et plus sécurisés. Pour plus d’informations, consultez Surcharges de modèles sécurisés.

Les versions de bibliothèque de débogage de ces fonctions remplissent d’abord la mémoire tampon avec 0xFE. Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine Tchar.h _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_cgetts_s _cgets_s _cgets_s _cgetws_s

Spécifications

Routine En-tête requis
_cgets_s <conio.h>
_cgetws_s <conio.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Voir aussi

E/S de console et de port
_getch, _getwch