gets, _getwsgets, _getws

Obtient une ligne du flux stdinGets a line from the stdin stream. Des versions plus sécurisées de ces fonctions sont disponibles. Consultez gets_s, _getws_s.More secure versions of these functions are available; see gets_s, _getws_s.

Important

Ces fonctions sont obsolètes.These functions are obsolete. Depuis Visual Studio 2015, elles ne sont pas disponibles dans la bibliothèque CRT.Beginning in Visual Studio 2015, they are not available in the CRT. Les versions sécurisées de ces fonctions, gets_s et getws_s, sont toujours disponibles.The secure versions of these functions, gets_s and _getws_s, are still available. Pour plus d’informations sur ces fonctions alternatives, consultez gets_s, _getws_s.For information on these alternative functions, see gets_s, _getws_s.

Important

Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime.This API cannot be used in applications that execute in the Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.For more information, see CRT functions not supported in Universal Windows Platform apps.

SyntaxeSyntax

char *gets(
   char *buffer
);
wchar_t *_getws(
   wchar_t *buffer
);
template <size_t size>
char *gets(
   char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws(
   wchar_t (&buffer)[size]
); // C++ only

ParamètresParameters

bufferbuffer
Emplacement de stockage pour une chaîne entrée.Storage location for input string.

Valeur de retourReturn Value

Retourne son argument en cas de réussite.Returns its argument if successful. Un pointeur NULL indique une condition d’erreur ou de fin de fichier.A NULL pointer indicates an error or end-of-file condition. Utilisez ferror ou feof pour déterminer laquelle des deux s’est produite.Use ferror or feof to determine which one has occurred. Si buffer a la valeur NULL ou est une chaîne vide, ces fonctions appellent le gestionnaire de paramètres non valides, comme décrit dans Validation de paramètre.If buffer is NULL, these functions invoke an invalid parameter handler, as described in Parameter Validation. Si l’exécution est autorisée à se poursuivre, ces fonctions retournent NULL et affectent à errno la valeur EINVAL.If execution is allowed to continue, these functions return NULL and set errno to EINVAL.

NotesRemarks

La fonction gets lit une ligne dans le flux d’entrée standard stdin et la stocke dans buffer.The gets function reads a line from the standard input stream stdin and stores it in buffer. La ligne se compose de tous les caractères jusqu’à et y compris le premier caractère de saut de ligne (« \n »).The line consists of all characters up to and including the first newline character ('\n'). gets remplace ensuite le caractère de saut de ligne par un caractère null (« \0 ») avant de retourner la ligne.gets then replaces the newline character with a null character ('\0') before returning the line. En revanche, la fonction fgets conserve le caractère de saut de ligne.In contrast, the fgets function retains the newline character. _getws est une version à caractères larges de gets; son argument et sa valeur de retour sont des chaînes à caractères larges._getws is a wide-character version of gets; its argument and return value are wide-character strings.

Important

Comme il n’existe aucun moyen de limiter le nombre de caractères lus par gets, une entrée non approuvée peut facilement provoquer des dépassements de la mémoire tampon.Because there is no way to limit the number of characters read by gets, untrusted input can easily cause buffer overruns. Utilisez plutôt fgets .Use fgets instead.

En C++, ces fonctions ont des surcharges de modèle qui appellent les équivalents plus récents et sécurisés de ces fonctions.In C++, these functions have template overloads that invoke the newer, secure counterparts of these functions. Pour plus d'informations, consultez Secure Template Overloads.For more information, see Secure Template Overloads.

Mappages de routines de texte génériqueGeneric-Text Routine Mappings

Routine TCHAR.HTCHAR.H routine _UNICODE et _MBCS non définis_UNICODE & _MBCS not defined _MBCS défini_MBCS defined _UNICODE défini_UNICODE defined
_getts gets gets _getws

Configuration requiseRequirements

RoutineRoutine En-tête requisRequired header
gets <stdio.h><stdio.h>
_getws <stdio.h> ou <wchar.h><stdio.h> or <wchar.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité.For additional compatibility information, see Compatibility.

ExemplesExample

// crt_gets.c
// compile with: /WX /W3

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets( line );  // C4996
   // Danger: No way to limit input to 20 chars.
   // Consider using gets_s instead.
   printf( "The line entered was: %s\n", line );
}

Notez qu’une entrée de plus de 20 caractères entraînera le dépassement de la mémoire tampon de ligne et presque certainement le blocage du programme.Note that input longer than 20 characters will overrun the line buffer and almost certainly cause the program to crash.


Hello there!The line entered was: Hello there!

Voir aussiSee also

E/S de fluxStream I/O
fgets, fgetwsfgets, fgetws
fputs, fputwsfputs, fputws
puts, _putwsputs, _putws