Aide avec fopen sur code::blocks 8.02

d -  
 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

A voir également:

2 réponses

don1design Messages postés 83 Statut Membre
 
J'ai aussi ce probleme
jai telecharger code::blocks 10.05
mais j'ai tjr ce mem probleme
0
don1design Messages postés 83 Statut Membre
 
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
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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,
0
don1design
 
jai fait un printf pr tester
mais javais oublie que je ne devias pas mettre
/
dans le nom
je ne me suis rendu compte des heures apres
0