IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Implémenter un nom de fichier en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Par défaut Incrémenter un nom de fichier en C
    Bonjour,

    Besoin d'incrémenter un nom de fichier en C mais ça paraît compliqué.

    J'ai écris ce bout de code pour illustrer mes propos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <string.h>
    #define size 200
    //#define ncorps 10
     
     
    main ()
    {
    int k;                       // indice du corps solide
    int ncorps;                  // nombre de corps solides dans mon systeme
    int compteur;                // le compteur
    int maxcompteur;             // nombre max d'itérations
    int sauv;                    // fréquence de sauvegarde
    double dt,temps;
    double x[size]={0};          // la valeur à calculer et à sauvegarder 
                                 // pour chaque corps
                                 // supposons ici qu'elle est connue
    FILE*fichier;      
     
     
    dt=0.000001;
    temps=0;
    ncorps=5;
    sauv=2;
    maxcompteur=10;
    compteur=1;
     
    fichier=fopen("resu.dat","w");
     
     
     
     do{
     
    		if(compteur%sauv==0){
    		    fprintf(fichier,"# iteration n°%d \n",compteur);
    			for(k=1;k<ncorps+1;k++){
                x[k]=2.5*k*temps;
    			fprintf(fichier,"%d %lf %lf\n",k,temps,x[k]);
     
    			}
    	      fprintf(fichier,"\n");
    		}
    	temps+=dt;
    	compteur+=1;
     
     
    	}while(compteur<=maxcompteur);
    	fclose(fichier);
    }
    et voici le résultat que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    # iteration n°2 
    1 0.000001 0.000002
    2 0.000001 0.000005
    3 0.000001 0.000007
    4 0.000001 0.000010
    5 0.000001 0.000012
     
    # iteration n°4 
    1 0.000003 0.000008
    2 0.000003 0.000015
    3 0.000003 0.000023
    4 0.000003 0.000030
    5 0.000003 0.000038
     
    # iteration n°6 
    1 0.000005 0.000012
    2 0.000005 0.000025
    3 0.000005 0.000037
    4 0.000005 0.000050
    5 0.000005 0.000063
     
    # iteration n°8 
    1 0.000007 0.000017
    2 0.000007 0.000035
    3 0.000007 0.000052
    4 0.000007 0.000070
    5 0.000007 0.000087
     
    # iteration n°10 
    1 0.000009 0.000023
    2 0.000009 0.000045
    3 0.000009 0.000068
    4 0.000009 0.000090
    5 0.000009 0.000113
    Au lieu d'avoir tout les résultats dans le même fichier tel que montré ci-dessus, j'aimerai écrire dans des fichiers séparés car ( nombre de corps très important). Il faut que j'incrémente le nom de mon fichier comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    fichier2.dat
    fichier4.dat
    fichier6.dat
    .
    .
    .
    fichierN.dat
     
    N: numéro de l'itération
    J'ai déjà écris ce genre de code mais en langage FORTRAN et en langage C je galère à le faire...

    Voilà si vous avez une idée, merci à vous et bon week-end.

  2. #2
    Membre chevronné Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Par défaut
    un truc dans ce genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int index = 4; /* c'est pour l'exemple */
    char filename[1024];
       sprintf(filename, "fichier%d.dat", index)
       fichier = fopen(filename, "w");
       if(fichier != NULL)
       {
          /* ... ton code */
          fclose(fichier);
       }
    Au fait un soupcon de mise en page et d'indentation cohérente rendra ton codse beaucoup plus lisible

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Par défaut
    Merci pour ta réponse,

    Malheureusement ça ne marche pas, j'ai finalement opté pour la solution que j'avais évoquée précédemment, c'est à dire tout écrire dans le même fichier même si cette solution ne me convient pas vraiment.

    Merci

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par mecaplus Voir le message
    Malheureusement ça ne marche pas
    Problème de compilation ? d'exécution ?
    Tu n'arrives pas à intégrer le code posté par Jenna ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Par défaut
    Effectivement je n'arrive pas à intégrer la partie du code donné par jenna dans mon code ce qui fait que j'ai des erreurs à la compilation, je vais reprendre ça à tête reposée et je vous tiens au courant.

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par mecaplus Voir le message
    Effectivement je n'arrive pas à intégrer la partie du code donné par jenna dans mon code ce qui fait que j'ai des erreurs à la compilation, je vais reprendre ça à tête reposée et je vous tiens au courant.
    Poste ton code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  2. Réponses: 6
    Dernier message: 13/12/2006, 11h31
  3. Réponses: 2
    Dernier message: 29/01/2004, 11h05
  4. Réponses: 4
    Dernier message: 10/10/2003, 18h04
  5. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo