Aide avec fopen sur code::blocks 8.02
d
-
don1design -
don1design -
Bonjour, tout le monde
moi jutilise code blocks pour compiler mes programmes en c
j'ai besoin de rajoutter une variable
date
qui contient la date du jour au nom dun fichier.txt
qui devra etre
transaction_date.txt
jai utiliser differente methode
mais je narrive pas a creer le fichier
voici les methodes que jai utiliser
methode 1
char dateEtHeureDuJour();
char date[11], Heure[256];
int main(int argc, char *argv[])
{
dateEtHeureDuJour();
FILE* fichier = NULL;
char tmp[500];
sprintf(tmp, "transaction_%s.txt", date);
printf("\n%s", tmp);
fichier = fopen(tmp, "w");
fclose(fichier);
return 0;
}
methode 2
char dateEtHeureDuJour();
char date[11], Heure[256];
int main()
{
dateEtHeureDuJour();
char nom1[27]="transaction_";
char nom3[]=".txt";
char nom2[15]="";
char* nomF;
strcat(nom2, date);
strcat(nom2, nom3);
strcat(nom1, nom2);
printf("\n%s", nom1); /******L'affichage marche tres bien*******/
nomF = (char*)malloc(sizeof(char));
nomF=&nom1[0];
printf("\n%s", nomF); /******L'affichage marche tres bien*******/
FILE* fichier = NULL;
fichier = fopen(nomF, "w");
fclose(fichier);
return 0;
}
j'aimerais avoir une methode universelle qui fonctionne sur tout les compilateurs car ces deux methodes naboutisser a rien sur code::blocks
moi jutilise code blocks pour compiler mes programmes en c
j'ai besoin de rajoutter une variable
date
qui contient la date du jour au nom dun fichier.txt
qui devra etre
transaction_date.txt
jai utiliser differente methode
mais je narrive pas a creer le fichier
voici les methodes que jai utiliser
methode 1
char dateEtHeureDuJour();
char date[11], Heure[256];
int main(int argc, char *argv[])
{
dateEtHeureDuJour();
FILE* fichier = NULL;
char tmp[500];
sprintf(tmp, "transaction_%s.txt", date);
printf("\n%s", tmp);
fichier = fopen(tmp, "w");
fclose(fichier);
return 0;
}
methode 2
char dateEtHeureDuJour();
char date[11], Heure[256];
int main()
{
dateEtHeureDuJour();
char nom1[27]="transaction_";
char nom3[]=".txt";
char nom2[15]="";
char* nomF;
strcat(nom2, date);
strcat(nom2, nom3);
strcat(nom1, nom2);
printf("\n%s", nom1); /******L'affichage marche tres bien*******/
nomF = (char*)malloc(sizeof(char));
nomF=&nom1[0];
printf("\n%s", nomF); /******L'affichage marche tres bien*******/
FILE* fichier = NULL;
fichier = fopen(nomF, "w");
fclose(fichier);
return 0;
}
j'aimerais avoir une methode universelle qui fonctionne sur tout les compilateurs car ces deux methodes naboutisser a rien sur code::blocks
A voir également:
- Aide avec fopen sur code::blocks 8.02
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Scanner qr code pc - Guide
2 réponses
jai fini par retrouver ou se trouvait mon erreur
ma fonction
dateheurdujour
retounait la date avec
des
/
or on ne peut metrre ce genre de caractere dans le nom dun fichier
ma fonction
dateheurdujour
retounait la date avec
des
/
or on ne peut metrre ce genre de caractere dans le nom dun fichier
Exact.
Tu aurais pu t'en rendre compte avant en testant la valeur de retour de ta fonction fopen.
Par exemple :
fichier = fopen...
if (fichier==NULL) {
fputs("erreur de création du fichier\n",stderr);
exit(EXIT_FAILURE);
}
De plus, attention à ta méthode 2. Ta variable nom2 n'est pas assez grande pour contenir les caractères. Et n'oublie pas le '\0' final.
Cdlt,
Tu aurais pu t'en rendre compte avant en testant la valeur de retour de ta fonction fopen.
Par exemple :
fichier = fopen...
if (fichier==NULL) {
fputs("erreur de création du fichier\n",stderr);
exit(EXIT_FAILURE);
}
De plus, attention à ta méthode 2. Ta variable nom2 n'est pas assez grande pour contenir les caractères. Et n'oublie pas le '\0' final.
Cdlt,