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.