gets_s
, _getws_s
Obtient une ligne du flux stdin
Ces versions ont des améliorations de gets
_getws
sécurité, comme décrit dans les fonctionnalités de sécurité du CRT.
Syntaxe
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
buffer
Emplacement de stockage pour une chaîne entrée.
sizeInCharacters
Taille de la mémoire tampon.
Valeur retournée
Retourne buffer
en cas de réussite. Un pointeur NULL
indique une condition d’erreur ou de fin de fichier. Utilisez ferror
ou feof
déterminez celui qui s’est produit.
Notes
La fonction gets_s
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’à la première ligne (''\n
). gets_s
remplace ensuite le caractère de nouvelle ligne par un caractère null (''\0
) avant de renvoyer la ligne. En revanche, la fonction fgets_s
conserve le caractère de saut de ligne.
Si le premier caractère lu est le caractère de fin de fichier, un caractère Null est stocké au début du buffer
fichier et NULL
est retourné.
_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.
Si buffer
elle est sizeInCharacters
NULL
inférieure ou égale à 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ètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, ces fonctions retournent NULL
et définissent errno sur 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 Surcharges de modèles sécurisés.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routine de texte générique
TCHAR.H Routine |
_UNICODE et _MBCS non défini |
_MBCS Défini |
_UNICODE Défini |
---|---|---|---|
_getts_s |
gets_s |
gets_s |
_getws_s |
Spécifications
Routine | En-tête requis |
---|---|
gets_s |
<stdio.h> |
_getws_s |
<stdio.h> ou <wchar.h> |
La console n’est pas prise en charge dans les applications plateforme Windows universelle (UWP). Les handles de flux standard associés à la console, stdin
et stdout
stderr
doivent être redirigés avant que les fonctions d’exécution C puissent les utiliser dans les applications UWP. Pour plus d’informations sur la compatibilité, consultez Compatibility.
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 );
}
Hello there!
The line entered was: Hello there!
Voir aussi
E/S de flux
gets
, _getws
fgets
, fgetws
fputs
, fputws
puts
, _putws
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour