Attention ! Fermeture imminente du forum d’Elektor (pour en savoir plus, cliquer ici). À partir du vendredi 1er mars il ne sera plus possible de s’identifier sur ce forum, mais son contenu restera disponible en lecture seule jusqu’à la fin du mois. Le 1er avril, il sera fermé définitivement.

compilo R8C

Postby lolorenesas » Wed May 30, 2007 12:00 am

J'ai un problème avec la fonction sprintf, d'habitude j'écrit comme cela (ça marche avec d'autre compilateur)
//***********************************************************
#include
#include
void test (void)
{
unsigned char miliamperes = 23;
sprintf(buf, "I= %bd: mA\r", miliamperes);
}
//***********************************************************
Après exécution j'obtiens dans buf la chaine suivante : "I= bd: mA"
je devrais avoir "I= 23: mA"
Avez-vous une idée ? merci.
lolorenesas
 
Posts: 4
Joined: Fri Jan 17, 2014 4:38 pm

Postby nlc » Wed May 30, 2007 12:00 am

Essaye en mettant "I= %d: mA\r"
nlc
 
Posts: 109
Joined: Fri Jan 17, 2014 4:37 pm

Postby ymasquel » Wed May 30, 2007 12:00 am

Bonjour "lolorenesas",

"char" peut ne pas être considéré comme un entier (ça dépend des compilateurs).
Ensuite, s'agissant d'un entier NON SIGNE il aurait été plus correct d'écrire :
sprintf(buf, "I= %u: mA\r", miliamperes);

Amicalement, Yves.
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3392
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby nlc » Wed May 30, 2007 12:00 am

A quoi correspond %b d'ailleurs !??


nlc
 
Posts: 109
Joined: Fri Jan 17, 2014 4:37 pm

Postby nlc » Wed May 30, 2007 12:00 am

A rien du tout a mon avis, c'est pour ca que ca marche pas
nlc
 
Posts: 109
Joined: Fri Jan 17, 2014 4:37 pm

Postby swalger » Wed May 30, 2007 12:00 am

le simple %d doit fonctionner.
Je ne voit pas à quoi correspond le %bd...
swalger
 
Posts: 7
Joined: Fri Jan 17, 2014 4:36 pm


Return to R8C/13 (01-2006)

Who is online

Users browsing this forum: No registered users and 1 guest