_cgets, _cgetws
Obtient une chaîne de caractères de la console.Les versions 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 les fenêtres d'exécution.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 des données.
Valeur de retour
_cgets et _cgetws retournent un pointeur vers le début de la chaîne, à buffer[2].Si buffer est NULL, ces fonctions appelle le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ils retournent NULL et le positionnement errno à EINVAL.
Notes
Ces fonctions lisent une chaîne de caractères de la console et stockent la chaîne et sa longueur de l'emplacement globale pointe vers buffer.Le paramètre d' buffer doit être un pointeur vers un tableau de caractères.Le premier élément du tableau, buffer[0], doit contenir la longueur maximale (caractères) de la chaîne à lire.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 mélange de la puissance de retour- ligne de chariot (CR-LF) ou le nombre spécifié de caractères est indiqué.La chaîne est stocké commencer à buffer[2].Si la fonction lit un CR-LF, elle enregistre le caractère Null ("\ 0 ").La fonction signale la longueur réelle de la chaîne dans le deuxième élément du tableau, buffer[1].
Étant donné que toutes les touches de modification sont actives lorsque _cgets ou_cgetws est appelée alors que dans une fenêtre de console, en appuyant sur la touche F3 répète la dernière entrée entrée.
En C++, ces fonctions ont des surcharges de modèle qui appellent le plus récent, fixent des équivalents de ces fonctions.Pour plus d'informations, consultez Surcharges sécurisées de modèle.
Mappages de routines de texte générique
Routine de Tchar.h |
_UNICODE et non définis _MBCS |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
Configuration requise
Routine |
En-tête requis |
---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> ou <wchar.h> |
Pour plus d'informations de compatibilité, consultez l' Compatibilité dans l'introduction.
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 );
}
}