gets, _getws

 

Date de publication : août 2016

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Obtient une ligne du flux stdin Des versions plus sécurisées de ces fonctions sont disponibles. Consultez gets_s, _getws_s.

System_CAPS_ICON_important.jpg Important

Ces fonctions sont obsolètes. Depuis Visual Studio 2015, elles ne sont pas disponibles dans la bibliothèque CRT. Les versions sécurisées de ces fonctions, gets_s et getws_s, sont toujours disponibles. Pour plus d’informations sur ces fonctions alternatives, consultez gets_s, _getws_s.

System_CAPS_ICON_important.jpg 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 pour une chaîne entrée.

Retourne son argument en cas de réussite. Un pointeur NULL indique une condition d’erreur ou de fin de fichier. Utilisez ferror ou feof pour déterminer laquelle des deux 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 sur EINVAL.

La fonction gets lit une ligne dans le flux d’entrée standard stdin et la stocke dans buffer. La ligne se compose de tous les caractères jusqu’à et y compris le premier caractère de saut de ligne (« \n »).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 saut de ligne._getws est une version à caractères larges de gets ; son argument et sa valeur de retour sont des chaînes à caractères larges.

System_CAPS_ICON_important.jpg 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. 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 et _MBCS non définis_MBCS défini_UNICODE défini
_gettsgetsgets_getws
RoutineEn-tête requis
gets<stdio.h>
_getws<stdio.h> ou <wchar.h>

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

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

  
Hello there!La ligne entrée était : Hello there!  

System::Console::Read

E/S de flux
fgets, fgetws
fputs, fputws
puts, _putws

Afficher: