Partager via


gets, _getws

Obtenez une ligne du flux d' stdin .Les versions 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 les fenêtres d'exécution.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 d' NULL indique une erreur ou une condition fin de fichier.Utilisez ferror ou feof pour déterminer celui qui s'est produit.Si buffer est NULL, ces fonctions appellent un gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ces fonctions NULL de retour et errno de positionnement à EINVAL.

Notes

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

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

Étant donné qu'il n'y a aucune façon de limiter le nombre de caractères lus par obtient, 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 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

_getts

gets

gets

_getws

Configuration requise

Routine

En-tête requis

gets

<stdio.h>

_getws

<stdio.h> ou <wchar.h>

Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.

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 plus de 20 caractères d'entrée déborderont la mémoire tampon de ligne et provoquent presque certainement tomber en panne le programme.

  

Équivalent .NET Framework

System::Console::Read

Voir aussi

Référence

E/S de flux

fgets, fgetws

fputs, fputws

puts, _putws