_cgets_s
, _cgetws_s
Obtient une chaîne de caractères à partir de la console. Ces versions et ont des améliorations de _cgets
_cgetws
sé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 EINVAL
sur , 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.