Aide avec fopen sur code::blocks 8.02

Fermé
d - 21 juil. 2010 à 12:42
 don1design - 21 juil. 2010 à 22:03
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 72 Date d'inscription vendredi 4 juin 2010 Statut Membre Dernière intervention 4 septembre 2015
21 juil. 2010 à 19:30
J'ai aussi ce probleme
jai telecharger code::blocks 10.05
mais j'ai tjr ce mem probleme
0
don1design Messages postés 72 Date d'inscription vendredi 4 juin 2010 Statut Membre Dernière intervention 4 septembre 2015
21 juil. 2010 à 21:09
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 817
21 juil. 2010 à 21:25
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
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