Algo ou c++
Bonjour,
ecrire un programme permettant d'afficher le code ascii d'un caractere aider moi svp c urgent merci davance
ecrire un programme permettant d'afficher le code ascii d'un caractere aider moi svp c urgent merci davance
2 réponses
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 :
je ne suis pas sûr complètement de mon exemple. si ça ne marche pas faire ceci :
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);
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 :
... ce serait l'opérateur suivant qui serait appelé :
.. au lieu de :
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
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