Algo ou c++
Fermé
sexy boy
-
4 nov. 2009 à 22:33
mamiemando Messages postés 33123 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 mai 2024 - 5 nov. 2009 à 13:24
mamiemando Messages postés 33123 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 mai 2024 - 5 nov. 2009 à 13:24
A voir également:
- Algo ou c++
- Telecharger algo pour pc - Télécharger - Édition & Programmation
- Algo naif - Forum Programmation
- Algo poker - Forum Algorithmes / Méthodes
- Traduction d'un algo en langage c - Forum C
- Aide : algo palindrome - Forum Programmation
2 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
4 nov. 2009 à 22:50
4 nov. 2009 à 22:50
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);
mamiemando
Messages postés
33123
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 mai 2024
7 753
5 nov. 2009 à 13:24
5 nov. 2009 à 13:24
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