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

2 réponses

  1. 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
  2. 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
    1. fiddy Messages postés 441 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
    2. 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