VC++ UINT Format et overflow ??!!

cs_Bidman Messages postés 8 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 8 juillet 2005 - 8 juil. 2005 à 09:15
cs_Bidman Messages postés 8 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 8 juillet 2005 - 8 juil. 2005 à 11:55
Bonjour !
C'est mon dernier jour de stage et il me reste juste un problème à régler. Apparement j'ai un probleme d'overflow. Voici le code (en simplifié)

CString tableau_donnes[18];
UINT nombre_cycle;
INT frequence;

tableau_donnes[0].Format("%d",frequence);
tableau_donnes[1].Format("%d",nombre_cycle);

Dans le tableau la frequence est bonne mais le nombre de cycle est mauvais. Au lieu d'avoir 367 500 j'ai 13750.
Sa doit surement être du fait que ce n'est pas %d qu'il faut mettre. Que faut-il mettre à la place?
Merci pour votre aide.

Kamoulox !

4 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
8 juil. 2005 à 10:13
Pas de soucis de ce côté là, c'est bien "%d" qu'il faut mettre.

C'est plus dans le remplissage du tableau je pense: tu écris bien entre tableau_donnes[0] et tableau_donnes[17]?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
0
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
8 juil. 2005 à 11:37
Salut !



Je suis pas aussi sûr que toi Bruno :

%d est reservé à l'affichage en base décimale des entiers signés (INT)

%u est utilisé pour afficher en base 10 des entiers non signés (UINT)



Donc, moi j'écrirai plutot :CString tableau_donnes[18];

UINT nombre_cycle;

INT frequence;



tableau_donnes[0].Format("%d",frequence);

tableau_donnes[1].Format("%u",nombre_cycle);



D'ailleurs, le fait que le nombre affiché ne soit peut s'expliquer par
le fait qu'un entier non signé a un bit utilisable de plus qu'un entier
signé (celui qui donne le signe justement)
0
cs_Bidman Messages postés 8 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 8 juillet 2005
8 juil. 2005 à 11:48
aucun problème de se côté là. Je viens de voir qu'il existe aussi un %u je vais essayer ceci. Le truc c'est que je ne pourrai pas voir le résultat avant Lundi . Pourtant j'ai fait un petit test et ça a l'air de marché mais quand je l'essaye dans le programme complet apparement ça ne marche pas. Peut-être que le problème viens d'ailleur mais c'est très étrange.

Kamoulox !
0
cs_Bidman Messages postés 8 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 8 juillet 2005
8 juil. 2005 à 11:55
Merci simtiers, je test ça.
Résultat Lundi matin (hum ça sent la journée supplémentaire)

Kamoulox !
0
Rejoignez-nous