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