Partager via


gets, _getws

Récupère une ligne du flux stdin. Des versions plus sécurisées de ces fonctions sont disponibles ; consultez gets_s, _getws_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 *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ètres

  • buffer
    Emplacement de stockage de la chaîne d'entrée.

Valeur de retour

Retourne son argument si l'opération a réussi. Un pointeur NULL indique une erreur ou une condition de fin de fichier. Utilisez ferror ou feof pour déterminer laquelle s'est produite. Si buffer est NULL, ces fonctions appellent un gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent NULL et définissent errno à la valeur EINVAL.

Notes

La fonction gets lit une ligne du flux d'entrée standard stdin et la stocke dans buffer. La ligne se compose de tous les caractère jusqu'au premier caractère de saut de ligne ("\n ") inclut. gets remplace ensuite le caractère de saut de ligne par un caractère Null ("\0 ") avant de retourner la ligne. En revanche, la fonction fgets conserve le caractère de nouvelle ligne. _getws est une version caractères larges gets; son argument et la valeur de retour de sont des chaînes de caractères larges.

Note de sécuritéNote de sécurité

Comme il n'existe aucun moyen de limiter le nombre de caractères lus par gets, une entrée non fiable peut facilement provoquer des dépassements de mémoire tampon.Utilisez plutôt fgets.

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 & _MBCS non définis

_MBCS défini

_UNICODE défini

_getts

gets

gets

_getws

Configuration requise

Routine

En-tête requis

gets

<stdio.h>

_getws

<stdio.h> ou <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

Exemple

// 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 que les entrées de plus de 20 caractères d'entrée déborderont la mémoire tampon de ligne et provoqueront presque certainement l'arrêt du programme.

  

Équivalent .NET Framework

System::Console::Read

Voir aussi

Référence

E/S de flux

fgets, fgetws

fputs, fputws

puts, _putws