Partager via


_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 );
   }
}
  

Voir aussi

Référence

Console et port E/S

_getch, _getwch