Cast int -> char [C]

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 =)

A voir également:

3 réponses

debianhunter Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   24
 
Bonjour,

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
1
lagarkane
 
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!
0
lagarkane
 
merci pour la réponse, j n'y avais pas pensé, mais effectivement, il suffit de faire le code ascii de 0 et de rajouter le chiffre voulu pour afficher le bon symbole!
Merci encore =)
0