Transformer un char en Int

momoadmo Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
momoadmo Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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 265 Date d'inscription   Statut Membre Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 
Merciiiii Beaucoup ,C'est exactement ce que je cherchait !!!
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord Merci beaucoup pour vos réponses
0