Transformer un char en Int
Bonjour,
Je voudrait savoir si c'est possible de transformer un int ou l'inverse:
par exemple:
je veut q'il mouvre un fichier nommé: 1213.txt, est-ce possible ?
Merci
Je voudrait savoir si c'est possible de transformer un int ou l'inverse:
par exemple:
je veut q'il mouvre un fichier nommé: 1213.txt, est-ce possible ?
Merci
int x=1213;
FILE* fichier = NULL;
fichier = fopen(x, "w");
1 réponse
-
Bonjour,
Comme cela :#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { int x = 1213; char y[100]; sprintf(y, "%d", x); strcat(y, ".txt"); FILE *fichier = fopen(y, "w"); return 0; }
Pour la conversion inverse du fais :#include <stdio.h> int main(int argc, char *argv[]) { char x[] = "1213"; int y = atoi(x); printf("%d\n", y); }-
-
ContributeurSalut Felice_, Salut momoadmo,
le code de Felice_ fonctionne très bien :-)
à noter juste, qu'en C, il vaut mieux utiliserstrncat()
(au lieu de strcat) etstrtol()
(au lieu de atoi), qui permettent de sécuriser le code contre les risques de dépassements et parfaire la solution proposée
pour sprintf, il existe aussisnprintf()
, mais il faut avoir un compilateur récent à la norme C11 ayant implémenté correctement cette fonction (c'est le cas de gcc dans ses versions récentes)
Dal -
-