Cast int -> char [C]
lagarkane
-
lagarkane -
lagarkane -
Bonjour!
J'ai toujours utilisé bêtement la fonction printf en C, sans me demander comment elle fonctionne...
J'ai donc décidé d'essayer de l reprogrammer, avec mes connaissances, en n'utilisant qu'une seule fonction: write()...
Mais voilà, je tombes sur un os...
Pour écrire une chaine de caractères, pas de soucis, mais si maintenant j'ai un int, et que je veux l'afficher caractère par caractère à l'ecran, il faut, par exemple pour une variable
nombre = 5679
le découper en 5, 6, 7, 9.
pour cela, j'utilise simplement la division par la puissance de 10 voulue.
Mais lorsque j'essayes de stocker le nombre dans un char, les problèmes commencent.
J'ai pu constater que caster un float en int et inversement n'est pas compliqué (int j = nb_decimal;)
Mais lorsque je cast un int d'un seul caractère (int i = 1; par exemple) dans un char, la variable char reste vide.....
Quelqu'un saurait comment faire? Sachant que je ne veux pas utiliser d'autre fonction que write...
Où est le problème?
merci d'avance, si vous m'avez compris =)
J'ai toujours utilisé bêtement la fonction printf en C, sans me demander comment elle fonctionne...
J'ai donc décidé d'essayer de l reprogrammer, avec mes connaissances, en n'utilisant qu'une seule fonction: write()...
Mais voilà, je tombes sur un os...
Pour écrire une chaine de caractères, pas de soucis, mais si maintenant j'ai un int, et que je veux l'afficher caractère par caractère à l'ecran, il faut, par exemple pour une variable
nombre = 5679
le découper en 5, 6, 7, 9.
pour cela, j'utilise simplement la division par la puissance de 10 voulue.
Mais lorsque j'essayes de stocker le nombre dans un char, les problèmes commencent.
J'ai pu constater que caster un float en int et inversement n'est pas compliqué (int j = nb_decimal;)
Mais lorsque je cast un int d'un seul caractère (int i = 1; par exemple) dans un char, la variable char reste vide.....
Quelqu'un saurait comment faire? Sachant que je ne veux pas utiliser d'autre fonction que write...
Où est le problème?
merci d'avance, si vous m'avez compris =)
A voir également:
- Cast int -> char [C]
- Vlc cast to tv - Guide
- Installer chrome cast - Guide
- Reinitialiser chrome cast - Guide
- Coco char - Accueil - Réseaux sociaux
- Cle cast hdmi - Guide
3 réponses
Bonjour,
En ASCII, '0' = 48.
Je ferais donc quelque chose de ce gout-la:
La gestion du signe, du 0 et eventuellement de l'overflow (digit doit etre compris entre 0 et 9) reste a ta charge ;o)
Bon courage
En ASCII, '0' = 48.
Je ferais donc quelque chose de ce gout-la:
char car; // caractere unsigned short digit; // doit etre un entier non-signe ... // iterate on number, digit after digit while( ... ) { // recupereation du digit ... car = 48 + digit; // ecriture du nombre .. }
La gestion du signe, du 0 et eventuellement de l'overflow (digit doit etre compris entre 0 et 9) reste a ta charge ;o)
Bon courage
Ok, désolé, j'ai compris où était mon problème!
le problème n'est pas qu'il n'arrive pas a mettre mon int dans un char, mais le problème est qu'au lieu de prendre le symbole de mon int, par exemple '0' ou '6' , il prends le symbole réprésenté par le code ascii!
Par exemple pour 0, il va prendre '\0' !
et comme c'est une variable, jpeux aps mettre le nombre entre apostrohpes!!
Comment puis'je lui faire comprendre que je veux le symbole, et pas le code décimal du symbole ascii?
HELP!
le problème n'est pas qu'il n'arrive pas a mettre mon int dans un char, mais le problème est qu'au lieu de prendre le symbole de mon int, par exemple '0' ou '6' , il prends le symbole réprésenté par le code ascii!
Par exemple pour 0, il va prendre '\0' !
et comme c'est une variable, jpeux aps mettre le nombre entre apostrohpes!!
Comment puis'je lui faire comprendre que je veux le symbole, et pas le code décimal du symbole ascii?
HELP!