Salut,
J'ai actuellement un probleme avec une fonction censée convertir un entier long en une chaine de caractères :
La fonction a trois arguments : l'entier a convertir, le pointeur vers une chaine de caractères ou l'on doit ecrire la chaine, et la base.
Seulement, il y a un probleme, et quand j'essaye d'afficher la chaine a l'ecran, je n'obtient pas la chaine souhaitée.
Voici le code :
et j'obtient (sur la console) :════════════════════════════════²²²²½½½½½½½½¯■¯■
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #include <iostream> using namespace std; void DecToChar(long, char*, int); int main() { long i; char* buf = new char[32]; i = 16565; DecToChar(i, buf, 10); cout <<buf<<endl; system("pause"); } void DecToChar(long Dec, char* out, int radix) { char tableau[33]; register int i; for(i = 31; Dec != 0 && i >= 1; i--) { tableau[i] = (Dec % radix) >= 10 ? 0x57 + (Dec % radix) : 0x30 + (Dec % radix); Dec /= radix; } tableau[32] = '\0'; out = new char[32-i]; register int j; for(j = 0; i < 33; out[j] = tableau[i], i++, j++); }
Appuyez sur une touche pour continuer...
Aucun probleme de compilation.
Je pense qu'il y a un probleme au niveau du pointeur char, mais je ne suis pas sur.
PS : je suis un debutant, je ne suis peut etre pas au point sur certaines choses.
Merci.
Partager