sprintf() :
mémorise des sorties formatées dans une chaîne de caractères.
Prototype:
int sprintf(char *tampon, const char *format [, argument, ...]);
dans: <stdio.h>
Description:
Comme printf(), la fonction sprintf() convertit une
ou plusieurs variables suivant les formats précisés. Mais sprintf place les
résultats dans la chaîne 'tampon' (son premier argument), alors que printf les
envoie sur la sortie standard.
Les résultats placés dans la chaîne pointée par tampon sont terminés par '\0'.
Vous devez être sûr que la place suffisante pour coder les résultatsées est
disponible.
Valeur renvoyée:
la longueur de la chaîne construite (sans compter '\0')
Portabilité:
système UNIX, DOS, norme ANSI.
Exemple:
exemple 1:
#include <stdio.h>
#include <math.h> /* pour utiliser M_PI */
void main(void) {
char buffer[80];
int nbc;
nbc = sprintf(buffer, "Une approximation de Pi : %lf", M_PI );
puts(buffer);
printf( "nombre de caractères : %d\n", nbc);
}
exemple 2:
/*
Dans cet exemple, on génère un format permettant à scanf()
de lire au plus MAX_CAR caractères, afin d'être sûr que
le tableau recevant les données soit de taille suffisante
*/
#include <stdio.h>
#include <string.h> /* Pour uUtiliser strlen() */
#define MAX_CAR 10
void main(void) {
char tampon[1+MAX_CAR]; char format[80];
int nbc;
sprintf( format, "%c%ds", '%', MAX_CAR);
printf( "Format généré : %s\n", format);
printf( "Tapez des caractères : ");
scanf( format, tampon);
printf("lu : %d caractères\n", strlen(tampon));
}