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

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