Fontion à la sprintf

Le
TSalm
Bonjour,

Une fonction doit prendre des arguments à la sprintf pour formater une
chaine.
Pour test, j'ai tenté le code ci-dessous :
/*-*/
#include <stdio.h>
#include <stdarg.h>

void printIt( const char *format, )
{
char out[2000];

va_list arg;
va_start( arg, format );

snprintf( out , 2000 , format , arg );
va_end(arg);

printf(">> %s <<" , out );
}


int main( )
{
int a = 10;
printIt ( "Hello %i",a);

printf(">> Hello %i",a);

return 0;
}
/*-*/

Ce qui me retourne :
>> Hello 2293572 <<
>> Hello 10

Y a t-il une solution pour réutiliser la puissance de sprintf ?
-TSalm

--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mickaël Wolff
Le #20325681
TSalm wrote:
void printIt( const char *format, ... )
{
char out[2000];

va_list arg;
va_start( arg, format );

snprintf( out , 2000 , format , arg );


vsnprintf prend en quatrième argument un va_list, et non snprintf.

va_end(arg);

printf(">> %s <<n" , out );
}



--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
TSalm
Le #20326231
Le Sat, 10 Oct 2009 06:59:54 +0200, Mickaël Wolff

TSalm wrote:
void printIt( const char *format, ... )
{
char out[2000];
va_list arg;
va_start( arg, format );
snprintf( out , 2000 , format , arg );


vsnprintf prend en quatrième argument un va_list, et non snprintf.




Merci. Ca fonctionne parfaitement.
Publicité
Poster une réponse
Anonyme