Transformer un char en Int

momoadmo Messages postés 6 Statut Membre -  
momoadmo Messages postés 6 Statut Membre -
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

int x=1213;
FILE* fichier = NULL;
fichier = fopen(x, "w");


1 réponse

Felice_ Messages postés 271 Statut Membre 11
 
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);
}
1
momoadmo Messages postés 6 Statut Membre
 
Merciiiii Beaucoup ,C'est exactement ce que je cherchait !!!
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
Salut Felice_, Salut momoadmo,

le code de Felice_ fonctionne très bien :-)

à noter juste, qu'en C, il vaut mieux utiliser
strncat()
(au lieu de strcat) et
strtol()
(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 aussi
snprintf()
, 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
0
momoadmo Messages postés 6 Statut Membre
 
D'accord Merci beaucoup pour vos réponses
0