Bonjour,

Je cherche à commencer lire à partir d'un ligne bien déterminé d'un fichier.
L'intérieur du fichier est quelque chose comme ca.
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
NAME: n100mosA.tsp, 100 nodes, semilla 0 
COMMENT: Problema
DIMENSION: 101 
CAPACITY: 218 
EDGE_WEIGHT_TYPE: EUC_2D 
NODE_COORD_SECTION 
1 0.0000 0.0000 
2 220.0000 -461.0000 
3 -62.0000 -261.0000 
4 298.0000 356.0000 
5 -214.0000 -134.0000 
6 113.0000 -49.0000 
7 -399.0000 354.0000 
. 
. 
101 234.000 346.000
DISPLAY_DATA_SECTION: 
1 250 250 
2 360 19 
3 219 119 
4 399 428
5 143 183
6 306 225
7 50 427
8 141 71
9 461 269
10 143 473
11 340 499
12 446 488
13 453 328
14 162 229
15 120 441
16 139 363
17 295 223
.
101 223 -234
DEMAND_SECTION
1 -214
2 7
3 9
4 -1
5 9
6 0
7 4
8 1
9 -5
10 0
11 -1
...
101 2
EOF
Jecherche à lire les lignes après NODE_COORD_SECTION (le premier colone correpond à l identifiant correspond ville, 2 correspond colone abscisse et 3 ème correspond colone ordonnee)dans le fichier.
J'ai réalisé ce petit programme. Néomoins, ca se plainte?
Pourriez-vous m'aider SVP?
Merci beaucoup.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
 
 
int main ()
{
 
	struct ville								/*definition d'un type structure nommé ville*/
	{
		int identifiant;
		double abscisse;
		double ordonnee;
		int demande;							/*demande du ville*/
		int capacite;									
 
	};
	struct    ville Ville[101];				/* variable de type structure ville*/
	double ** distance_entre_ville;		/*distance euclidiene entre les ville*/
 
	int i, j;
 
	/*ouverture du fichier de données pour lecture*/
 
	FILE * fichier;
 
	fichier = fopen("D:\\Codes\\TS2004t3\\n100mosA.tsp", "r");
 
	if(fichier == NULL)
	{
		printf("Impossible d'ouvrir fichier .tsp \n");
		exit (-1);
	}
 
 
/*on commence à lire à la ligne NODE_COORD_SECTION 
*/
 
	for (i=0; i<6;i++)
	{
 
		if (fscanf(fichier, "%d %lf %lf", &(Ville[i].identifiant), &(Ville[i].abscisse), &(Ville[i].ordonnee)) !=0)
		{
			printf("Erreur dans le format d'une ligne : ligne %d.\n", i);
            exit(-1);
		}
	}
 
	/*Allocation dynamique du tableau distance*/
	if(distance_entre_ville = malloc(101 *sizeof(double))== NULL)
	{
		printf("erreur lors du malloc sur la taille distance  \n");
		exit (-1);
	}
 
	for (i=0 ; i<101; i++)																													
		if ((distance_entre_ville[i] = malloc (101 * sizeof(double))) == NULL)
        {
            printf("Erreur lors du malloc sur distance[] ");
            exit (-1);
        }
	for(i=0;i<101;i++)
	{
		for(j=0;j<i;j++)
		{
			distance_entre_ville[i][i] = 0.0;
			distance_entre_ville[i][j]= distance_entre_ville[j][i]=  sqrt(pow((Ville[i].abscisse - Ville[j].abscisse),2.0)+pow((Ville[i].ordonnee - Ville[j].ordonnee),2.0));
		}
	}
 
 
	for (i = 0; i < 101; i++)
 
		free(distance_entre_ville[i]);
 
	free(distance_entre_ville);
 
    for(i=0;i<101;i++)
	{
 
		for(j=0;j<i;j++)
		{
		printf("la distance est %f%f", distance_entre_ville[i][j]);
		}
	}
 
	fclose(fichier);
	getchar();
 
 
	return 0;
}