gets_s, _getws_sgets_s, _getws_s

Obtient une ligne du flux stdin .Gets a line from the stdin stream. Ces versions de gets, _getws intègrent des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité dans le CRT.These versions of gets, _getws have security enhancements, as described in Security Features in the CRT.

SyntaxeSyntax

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ètresParameters

bufferbuffer
Emplacement de stockage pour une chaîne entrée.Storage location for input string.

sizeInCharacterssizeInCharacters
Taille de la mémoire tampon.The size of the buffer.

Valeur de retourReturn Value

Retourne la mémoire tampon en cas de réussite.Returns buffer if successful. Un pointeur NULL indique une condition d’erreur ou de fin de fichier.A NULL pointer indicates an error or end-of-file condition. Utilisez ferror ou feof pour déterminer laquelle des deux s’est produite.Use ferror or feof to determine which one has occurred.

NotesRemarks

La fonction gets_s lit une ligne dans le flux d’entrée standard stdin et la stocke dans la mémoire tampon.The gets_s function reads a line from the standard input stream stdin and stores it in buffer. La ligne se compose de tous les caractères jusqu’à et y compris le premier caractère de saut de ligne (« \n »).The line consists of all characters up to and including the first newline character ('\n'). gets_s remplace ensuite le caractère de saut de ligne par un caractère null (' \ 0 ') avant de retourner la ligne.gets_s then replaces the newline character with a null character ('\0') before returning the line. En revanche, la fonction fgets_s conserve le caractère de saut de ligne.In contrast, the fgets_s function retains the newline character.

Si le premier caractère lu est le caractère de fin de fichier, un caractère NULL est stocké au début de la mémoire tampon et la valeur null est retournée.If the first character read is the end-of-file character, a null character is stored at the beginning of buffer and NULL is returned.

_getws_s est une version à caractères larges de gets_s; son argument et sa valeur de retour sont des chaînes à caractères larges._getws_s is a wide-character version of gets_s; its argument and return value are wide-character strings.

Si buffer a la valeur null ou si la valeur de sizeInCharacters est inférieure ou égale à zéro, ou si la mémoire tampon est trop petite pour contenir la ligne d’entrée et la marque de fin null, ces fonctions appellent un gestionnaire de paramètres non valides, comme décrit dans paramètre Validation.If buffer is NULL or sizeInCharacters is less than or equal to zero, or if the buffer is too small to contain the input line and null terminator, these functions invoke an invalid parameter handler, as described in Parameter Validation. Si l’exécution est autorisée à se poursuivre, ces fonctions retournent la valeur null et attribuent à errno la valeur ERANGE.If execution is allowed to continue, these functions return NULL and set errno to 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.In C++, using these functions is simplified by template overloads; the overloads can infer buffer length automatically (eliminating the need to specify a size argument) and they can automatically replace older, non-secure functions with their newer, secure counterparts. Pour plus d'informations, consultez Secure Template Overloads.For more information, see Secure Template Overloads.

Mappages de routines de texte génériqueGeneric-Text Routine Mappings

Routine TCHAR.HTCHAR.H routine _UNICODE et _MBCS non définis_UNICODE & _MBCS not defined _MBCS défini_MBCS defined _UNICODE défini_UNICODE defined
_getts_s_getts_s gets_sgets_s gets_sgets_s _getws_s_getws_s

Configuration requiseRequirements

RoutineRoutine En-tête requisRequired header
gets_sgets_s <stdio.h><stdio.h>
_getws_s_getws_s <stdio.h> ou <wchar.h><stdio.h> or <wchar.h>

La console n’est pas prise en charge dans les applications de plateforme Windows universelle (UWP).The console is not supported in Universal Windows Platform (UWP) apps. Les handles de flux standard associés à la console, stdin, stdoutet stderr, doivent être redirigés pour que les fonctions runtime C puissent les utiliser dans les applications UWP.The standard stream handles that are associated with the console, stdin, stdout, and stderr, must be redirected before C run-time functions can use them in UWP apps. Pour plus d'informations sur la compatibilité, voir Compatibilité.For additional compatibility information, see Compatibility.

ExemplesExample

// 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 );
}
Hello there!
The line entered was: Hello there!

Voir aussiSee also

E/S de fluxStream I/O
gets, _getwsgets, _getws
fgets, fgetwsfgets, fgetws
fputs, fputwsfputs, fputws
puts, _putwsputs, _putws