Mettre un nombre sous forme de caractères

Fermé
mrn_geii Messages postés 2 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 17 février 2016 - 16 févr. 2016 à 21:01
 mrn_geii - 20 févr. 2016 à 22:11
Bonjour,

Je souhaite créer un cardiofréquencemètre, et pour cela j'ai besoin d'afficher les trois digits de la fréquence cardiaque sur l'afficheur LCD.

"Créer une variable PRbpm et un tableau PR[] respectivement la fréquence cardiaque sous a forme décimale et sous la forme de trois caractères.
Affecter à RPbpm la valeur 123 et créer le code nécessaire pour extraire les trois chiffres de la fréquence cardiaque et les transformer en caractères.
Pour cela, on vous dit que le caractère '0' a pour code ASCII 0x30. Afficher les trois digits de la fréquence cardiaque."

Après avoir divisé notre variable en trois chiffres ('1', '2', '3', respectivement centaine, dizaine et unite) je ne comprend pas comment les mettre dans le tableau sous forme de caractère...
(ça doit faire quelque chose du genre PR[0]=0x32 mais comment on passe d'un '2' à un 0x31 ?)
Merci d'avance.

1 réponse

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
17 févr. 2016 à 14:13
Bonjour,

en C et C++ la conversion d'un chiffre en caractère est une simple translation.
int x = 2;
char caractere = (char)('0' + 2);
int y = caractere - '0';


Pour un nombre, il existe des fonctions, par exemple
std::istringstream entree("123");
int x;
entree >> x;
std::ostringstream sortie;
sortie << x;   // qui converti le nombre en caractères
string str = sortie.str();
1
mrn_geii Messages postés 2 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 17 février 2016
17 févr. 2016 à 21:20
Merci de m'avoir répondu,
du coup, pour un chiffre je comprend; c'est tout simple en fait.

Par contre, pour le nombre le "istringstream" du coup, c'est une fonction connue du logiciel ? (Et aussi, ">>" ça revient à un printf ?)
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101 > mrn_geii Messages postés 2 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 17 février 2016
Modifié par Dalfab le 19/02/2016 à 15:17
les stringstream sont un type pour manipuler les string (s'il manque des fonctions pour les string pour peut passer par ce type).
Elles ont un comportement flux comme les printf mais insérent/retirent les données d'un buffer au lieu d'un flux.
L'équivalent en printf de l'exemple est :

int x;
cin >> x; // demande un message qui est sensé être un nombre
cout << x; // convertit le nombre en caractères et l'envoi vers la console
0
mrn_geii > Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023
20 févr. 2016 à 22:11
Ah d'accord, merci pour l'explication :)
0
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 126
Modifié par yougy2 le 18/02/2016 à 21:54
Bonjour. La fonction itoa est pour toi ! :D Mais itoa te retourne un char *, c'est bien ce que tu veux ?
0