_cgets, _cgetws
Obtient une chaîne de caractères à partir de la console. Des versions plus sécurisées de ces fonctions sont disponibles ; consultez _cgets_s, _cgetws_s.
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 avec /ZW.
char *_cgets(
char *buffer
);
wchar_t *_cgetws(
wchar_t *buffer
);
template <size_t size>
char *_cgets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_cgetws(
wchar_t (&buffer)[size]
); // C++ only
Paramètres
- buffer
Emplacement de stockage pour les données.
Valeur de retour
_cgets et _cgetws retournent un pointeur au début de la chaîne, dans buffer[2]. Si buffer est NULL, ces fonctions appellent le gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, elles retournent NULL et définissent errno à la valeur EINVAL.
Notes
Ces fonctions lisent une chaîne de caractères de la console et stockent la chaîne et sa longueur dans l'emplacement pointé par buffer. Le paramètre buffer doit être un pointeur vers un tableau de caractères. Le premier élément du tableau, buffer[0], doit contenir la longueur maximale (en caractères) de la chaîne à lire. Le tableau doit contenir suffisamment d'éléments pour contenir la chaîne, un caractère null de fin ("\0 "), et 2 octets supplémentaires. La fonction lit les caractères jusqu'à un retour chariot-nouvelle ligne (CR-LF) ou le nombre de caractères spécifié est lu. La chaîne est enregistrée à partir de buffer[2]. Si la fonction lit un CR-LF, elle enregistre le caractère Null ("\ 0 "). La fonction enregistre la longueur réelle de la chaîne dans le deuxième élément de tableau, buffer[1].
Comme toutes les touches de modification sont actives lorsque _cgets ou_cgetws est appelée dans une fenêtre de console, appuyer sur la touche F3 répète la dernière entrée.
En C++, ces fonctions ont des surcharges de modèle qui appellent les équivalents plus récents et sécurisés de ces fonctions. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.
Mappages de routines de texte générique
Routine Tchar.h |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
Configuration requise
Routine |
En-tête requis |
---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> or <wchar.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité.
Exemple
// crt_cgets.c
// compile with: /c /W3
// This program creates a buffer and initializes
// the first byte to the size of the buffer. Next, the
// program accepts an input string using _cgets and displays
// the size and text of that string.
#include <conio.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char buffer[83] = { 80 }; // Maximum characters in 1st byte
char *result;
printf( "Input line of text, followed by carriage return:\n");
// Input a line of text:
result = _cgets( buffer ); // C4996
// Note: _cgets is deprecated; consider using _cgets_s
if (!result)
{
printf( "An error occurred reading from the console:"
" error code %d\n", errno);
}
else
{
printf( "\nLine length = %d\nText = %s\n",
buffer[1], result );
}
}