Transformer un char en Int

Fermé
momoadmo Messages postés 6 Date d'inscription jeudi 1 juin 2017 Statut Membre Dernière intervention 2 juin 2017 - 2 juin 2017 à 18:14
momoadmo Messages postés 6 Date d'inscription jeudi 1 juin 2017 Statut Membre Dernière intervention 2 juin 2017 - 2 juin 2017 à 23:28
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 mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 2 juin 2017 à 18:37
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 2 juin 2017
2 juin 2017 à 18:46
Merciiiii Beaucoup ,C'est exactement ce que je cherchait !!!
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 2 juin 2017 à 19:50
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 jeudi 1 juin 2017 Statut Membre Dernière intervention 2 juin 2017
2 juin 2017 à 23:28
D'accord Merci beaucoup pour vos réponses
0