Convertir un int en char* [C] - C - Programmation
Marsh Posté le 02-04-2005 à 21:36:34
snprintf
edit : oops
ben tu fais une succession de division par 10, et en fonction du reste, tu émets un caractère '0'..'9'
Marsh Posté le 02-04-2005 à 22:02:49
Code :
|
Ça semble correct ?
car pour 1234567890 il m'affiche 0987654321
Marsh Posté le 02-04-2005 à 22:13:12
pourquoi tu fais pas += '0' ?
write(1, (char*)&i_modulo, 1);
relis le man de write et dis moi pourquoi tu castes ?
et puis d'ailleurs i_module devrait être de type char, sinopn t'es foutu ...
c = i_modulo + '0'
ça affiche à l'envers ? normal.
Marsh Posté le 02-04-2005 à 22:13:23
Ah wé merde le boolay
Désolé
edit: merci taz pour les infos, et désolé j'me suis un peu emmelé pour l'affichage... je vais méditer là dessus
Marsh Posté le 02-04-2005 à 22:15:16
Euh concernant write, il demande un const void* (va savoir pourquoi je l'ai casté en char*)
donc j'fais write(1, (const void*)&i_modulo, 1);, c'est bon là?
Marsh Posté le 02-04-2005 à 22:16:02
pourquoi veux tu caster ?
as tu changé le type de i_modulo vers char ?
Marsh Posté le 02-04-2005 à 22:18:25
Oui, j'ai changé le type de i_modulo en char.
Pourquoi le caster? Ben j'ai un char et il me faut un const void*
Marsh Posté le 02-04-2005 à 22:29:44
et la maîtresse t'as pas dit que les conversions void* <-> T* sont implicites et légales ?
Marsh Posté le 02-04-2005 à 22:37:04
J'en sais rien, n'empeche qu'à la base j'ai pas un pointeur donc nécessité de caster, et tant qu'à faire autant caster en ce qu'on me demande, c'est plus propre à lire.
edit: ah oui remarque si je passe que &modulo, ça marcherait.
Marsh Posté le 02-04-2005 à 22:38:34
void ca veux dire "quelque chose" donc pas besoin de caster...
Marsh Posté le 02-04-2005 à 22:49:47
deather2 a écrit : et tant qu'à faire autant caster en ce qu'on me demande, c'est plus propre à lire. |
personne ne te demande de caster. Et au contraire c'est dégueux de caster quand y en a pas besoin, c'est source d'erreur et ça allourdie le code on l'obscurissant
Marsh Posté le 03-04-2005 à 00:40:08
deather2 a écrit : Je dois convertir un int en char* |
C'est quoi un 'char *' ?
http://mapage.noos.fr/emdel/notes.htm#char_star
Sinon, tu cherches probablement sprintf() ou [C99] snprintf().
Marsh Posté le 03-04-2005 à 10:08:42
À la base j'ai un int genre 123456789.
Je dois arriver à obtenir une chaîne de caractère genre "123456789\0".
Quant à snprintf, j'ai dis dans mon premier post que je ne pouvais pas les utiliser, je dois le faire à la main
Merci quand même!
Marsh Posté le 03-04-2005 à 10:37:56
deather2 a écrit : À la base j'ai un int genre 123456789. |
Ah, une chaine de caractères, ben fallait le dire...
Citation : Quant à snprintf, j'ai dis dans mon premier post que je ne pouvais pas les utiliser, je dois le faire à la main |
<mauvaise foi=ON>
Tu avais parlé de printf() ...
<mauvaise foi=OFF>
Marsh Posté le 02-04-2005 à 21:27:05
Bonjour,
Je dois convertir un int en char*, mais je ne sais pas du tout comment faire...
Je ne peut pas utiliser d'itoa() ou de printf(), juste mes mimines, mais j'vois carrément pas l'algo à faire
Qqun peut m'aider?
Merci !
Message édité par deather2 le 02-04-2005 à 21:27:14