OVH Cloud OVH Cloud

imprimer un char en décimal

12 réponses
Avatar
fabrizio
Bonjour,

mes très rapides recherches sont restées vaines.
---
uint8_t a = 5;
cout << "a=" << dec << a;
---
donne :
a=

je veux juste imprimer :
a=5

donc je cherche l'équivalent à :
printf("a=%d",a);

Fabrice

2 réponses

1 2
Avatar
Fabien LE LEZ
On Wed, 09 Feb 2005 23:14:44 +0100, Loïc Joly
:

Et si on veut afficher le code ASCII du caractère ?


Qu'est-ce qui te fait croire qu'il y a un rapport entre un code ascii et
la conversion d'un char en int ?


Je pensais au débogage d'un algorithme quelconque sur une plate-forme
où on a cette correspondance.

--
;-)


Avatar
kanze
Loïc Joly wrote:
wrote:

nico wrote:
les char sont signés, pourquoi faire un casting vers de
l'insigned ?


Les char sont parfois signé, parfois non. Mais sauf de rares
exceptions, toutes les valeurs d'un char, signé ou non,
peuvent se représenter sur un int. La conversion vers int
est donc la solution à préférer.


J'irais jusqu'à dire que si l'on souhaite l'imprimer en
décimal, ce n'est probablement pas un char (type représentant
un caractère) qu'on veut mais un signed char ou un unsigned
char (tous deux types représentants des entiers en petit
nombre).


Tout à fait, mais il s'agit là d'une convention de codage
(à laquelle j'adhère), et non d'une règle du langage. Et il
s'avère que pour des raisons historiques, on trouve encore
souvent des char pour des petits entiers. Pire, on les trouve
souvent pour les petits entiers signés, au point que même si les
vendeurs de certains compilateurs savent que logiquement, on
serait mieux avec un char non-signé, ils les font signés pour ne
pas casser du code existant (qui est de toute façon cassé selon
la norme C++, la norme C, et même K&R I, mais qui a toujours
marché avec les compilateurs courants).

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



1 2