Partager via


gets_s, _getws_s

Récupère une ligne du flux stdin. Ces versions de gets, _getws présentent des améliorations dans la sécurité, comme décrit dans Fonctionnalités de sécurité dans le CRT.

char *gets_s( 
   char *buffer,
   size_t sizeInCharacters
);
wchar_t *_getws_s( 
   wchar_t *buffer,
   size_t sizeInCharacters
);
template <size_t size>
char *gets_s( 
   char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws_s( 
   wchar_t (&buffer)[size]
); // C++ only

Paramètres

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

  • [in] sizeInCharacters
    Taille de la mémoire tampon.

Valeur de retour

En cas de réussite, retourne buffer. Un pointeur NULL indique une erreur ou une condition de fin de fichier. Utilisez ferror ou feof pour déterminer laquelle s'est produite.

Notes

La fonction gets_s 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 ") inclus. gets_s 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_s conserve le caractère de nouvelle ligne.

Si la première lecture de caractère est le caractère de fin de fichier, un caractère Null est enregistré au début du buffer et NULL est retourné.

_getws est une version caractères larges gets_s; son argument et la valeur de retour sont des chaînes de caractères larges.

Si buffer est NULL ou sizeInCharacters est inférieur ou égal à zéro, ou si la mémoire tampon est trop petite pour contenir la ligne d'entrée et le terminateur 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 erno à la valeur ERANGE.

En C++, l'utilisation de ces fonctions est simplifiée par les surcharges de modèle ; les surcharges peuvent déduire la longueur de la mémoire tampon automatiquement (ce qui évite d'avoir à spécifier un argument taille) et peuvent remplacer automatiquement les fonctions plus anciennes et non sécurisées par leurs équivalentes plus récentes et sécurisées. 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_s

gets_s

_getws

Configuration requise

Routine

En-tête requis

gets_s

<stdio.h>

_getws

<stdio.h> ou <wchar.h>

La console n'est pas prise en charge dans les applications Windows Store . Les handles de flux standard associés à la console, stdin, stdout et stderr doivent être redirigés pour que les fonctions runtime C puissent les utiliser dans les applications Windows Store . Pour plus d'informations sur la compatibilité, consultez Compatibilité.

Exemple

// crt_gets_s.c
// This program retrieves a string from the stdin and 
// prints the same string to the console.

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets_s( line, 20 );
   printf( "The line entered was: %s\n", line );
}
  

Équivalent .NET Framework

System::Console::Read

Voir aussi

Référence

E/S de flux

gets, _getws

fgets, fgetws

fputs, fputws

puts, _putws