Bonjour tout le monde,
J'ai un petit probleme que j'arrive pas à resoudre. Je veux convertir une variable de type 'int' en 'char*'. comment faire?
Merci de votre aide.
Version imprimable
Bonjour tout le monde,
J'ai un petit probleme que j'arrive pas à resoudre. Je veux convertir une variable de type 'int' en 'char*'. comment faire?
Merci de votre aide.
Bonjour highlight
un peu surprenante cette question, mais j'ai déjà vu cela en C embarqué ou l'on a une adresse de registre et on souhaite pouvoir accéder à ce registre.
de mémoire, c'était
mais c'est un peu vieuxCode:
1
2 unsigned char * pUnRegsitre = (char *)0xaaaa;
A+
Utilise la fonction sprintf de la façon suivante:
Comme ça si par exemple, t'a un int qui fait 42, dans tu buff tu te retrouvera avec "42", en chaine de charactère.Code:
1
2 sprintf(buff, "%d", ton_int);
Dans ce cas, la solution de 6-MarViN est la bonne.
Code:
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> int main() { int n = 42; char s[LMAX]; // Nombre maximal de chiffres + 1 sprintf(s, "%d", n); // Conversion de l'entier printf("%d => \"%s\"\n", n, s); return 0; }
Merci pour ces reponse. J'eclaircis mon probleme, c'est tres simple:
J'ai un entier:
Je veux le convertir pour avoir comme,Code:
1
2 int i=0;
Le but juste pour pouvoir lire un chemin et acceder à un fichierCode:
1
2 char* j="0";
Pour être plus précis, la fonction sprintf s'utilise comme printf (voir les pages de manuel).
Donc, dans un premier temps, fais comme si tu voulais afficher le nom du fichier que tu cherches.
Ensuite, remplace printf par sprintf, et ajoute comme premier paramètre le char * qui servira à stocker le nom du fichier.
Attention, ce pointeur doit pointer sur une zone mémoire suffisamment grande pour contenir toute la chaîne (caractère nul compris).
F.A.Q. C: Comment convertir un nombre en chaîne de caractères ?
PS: Tu n'est pas obligé de supprimer un message pour le modifier.
Le bouton « Éditer » sert à ça ! ;)
Le but de cela est d'acceder à un fichier qui a pour chemin:
C:\\fichier\\0.txt
voila ce que j'ai fait mais ça marche pas :
Par contre si je fais:Code:
1
2
3
4
5
6 char path[80]; char* chemin="C:\\fichier\\; strcpy (path,chemin); strcat (path,buffer); strcat (path,".txt");
ça marche tres bienCode:
1
2
3
4
5
6
7 char path[80]; char* chemin="C:\\fichier\\; strcpy (path,chemin); char * K="0"; strcat (path,K); strcat (path,".txt");
il sort d'ou le buffer dans ton premier cas?
Sinon grace a sprintf, tu n'as pas besoin de strcat tu peux faire de la facon suivante:
et voilou.Code:
1
2 sprintf(path, "%s%s%d.txt", chemin, buffer, ton_int);
Opps, desolé ça marche bien, l erreur que j'ai faite est que j'ai pas declarer suffisement de place pour les tableaux.. Merci bien les gas ça marche nikel :ccool: