Différence entre sscanf et sscanf_s
sscanf()
sscanf() est utilisé pour lire une entrée formatée à partir d’une chaîne.
Syntaxe: int sscanf (const char * s, const char * format, ...);
En cas de succès, la fonction renvoie le nombre de variables renseignées. En cas d’échec d’entrée avant que les données puissent être lues avec succès, EOF est renvoyé.
Exemple
L’exemple suivant montre l’utilisation de la fonction sscanf().
#include <stdio.h> #include <stdlib.h> #include <string.h> int main () { int day, year; char weekday[20], month[20], d[100]; strcpy( d, "Monday May 12 2010" ); sscanf( d, "%s %s %d %d", weekday, month, &day, &year ); printf("%s %d, %d = %s\n", month, day, year, weekday ); return(0); }
Après la compilation et l’exécution du programme ci-dessus, il produira le résultat suivant :
May 12, 2010 = Monday
sscanf_s()
sscanf_s() est une fonction sécurisée de sscanf() et les fonctions sécurisées exigent que la taille de chaque champ de type c, C, s soit transmise en tant qu’argument immédiatement après la variable.
Syntaxe: int sscanf_s(const char * restrict buffer, const char * restrict format, ...);
En cas de succès, la fonction renvoie le nombre de variables renseignées. En cas d’échec d’entrée avant que les données puissent être lues avec succès, EOF est renvoyé.