Algo ou c++

sexy boy -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
ecrire un programme permettant d'afficher le code ascii d'un caractere aider moi svp c urgent merci davance

2 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
en C++, le code ascii d'un caractère est sa valeur numérique. (En fait les char peuvent être écrits 'a', mais ce sont en fait des nombres. Ex :
char lettre='a';
printf("a=%d", lettre);


je ne suis pas sûr complètement de mon exemple. si ça ne marche pas faire ceci :
char lettre='a';
int code=lettre
printf("a=%d", code);
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
En C/C++ avec printf : tu n'as même pas besoin de passer par un int. Le printf se fiche pas mal du type de la variable sous-jacente (d'ailleurs il n'a aucun moyen de la connaître), le format que tu passes à printf lui dit simplement combien de bytes écrire comment les interpréter (comme une valeur numérique, un char etc...). En soi, ce que tu viens de faire avec un char marcherait aussi bien avec un wchar_t (caractère unicode).

En C++ si tu utilisais des flux (opérateur << sur les std::ostream) : la problématique serait différente, car à la compilation, C++ utilise l'opérateur << qui correspond au type que tu tentes d'écrire. Ainsi, si tu écrivais :

char c = 'x';
std::cout << x << std::endl;


... ce serait l'opérateur suivant qui serait appelé :

std::ostream & operator << (std::ostream &, char);


.. au lieu de :

std::ostream & operator << (std::ostream &, int);


Quoiqu'il en soit ce n'est pas à l'intérieur du code de << que la distinction sur le type et faite car << n'a aucun moyen de savoir, mais bien à la compilation. Dans ce cas il faudrait alors effectivement passer par un entier intermédiaire ou caster le char (par exemple avec un static_cast<int>).

Bonne chance
0