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é |
---|
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.