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 d’erreur

buffer numberOfElements pSizeRead Retour Contenu de buffer
NULL n'importe laquelle n'importe laquelle EINVAL n/a
non NULL zero n'importe laquelle EINVAL non modifié
non NULL n'importe laquelle 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 Sécuriser les surcharges de modèle.

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 routines de texte générique

Routine Tchar.h _UNICODE et _MBCS non définis _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

Console et port d’entrée/sortie (E/S)
_getch, _getwch