Bonjour, je rencontre un problème lors de la compilation de mon programme. En effet, lors de la compilation des fichiers dans le terminal, le message :
"In file included from main.c:5:0: graphe.txt:1:1: error: expected identifier or ‘(’ before numeric constant 3" revient à chaque fois. Je ne vois pas d'où vient le problème. Merci pour votre aide.
Code du fichier graphe.txt :
3
1 0
2 0
1 1
1 2
2 1
0 2
Code du fichier graphe.h :
Code du fichier graphe.c :Code:#ifndef GRAPHE__H__ #define GRAPHE__H__ typedef struct { int **mat_adjacence; int nb_sommet; }Graphe; void lireFichier(FILE *fichier,char* nom_fichier, Graphe *g); #endif
Code du fichier main.c :Code:#include <stdio.h> #include <stdlib.h> #include <string.h> #include "graphe.h" void lireFichier(FILE *fichier,char* nom_fichier, Graphe *g) { int a,b; fichier = fopen(nom_fichier,"r"); if(fichier == NULL) { printf("Erreur: Impossible d'ouvrir le fichier %s\n",nom_fichier); exit(EXIT_FAILURE); } // on récupère le nombre de sommets fscanf(fichier,"%d\n",&g->nb_sommet); printf("nombre de sommet: %d\n",g->nb_sommet); g->mat_adjacence = (int **)malloc(g->nb_sommet*sizeof(int)); if(g->mat_adjacence == NULL) { printf("Erreur: Espace Mémoire insuffisant"); exit(EXIT_FAILURE); } while( !feof(fichier)) { a = 0; b =0; fscanf(fichier,"%d %d\n",&a,&b); g->mat_adjacence[a][b] = 1; }
Code du fichier Makefile:Code:#include <stdio.h> #include <stdlib.h> #include <string.h> #include "graphe.c" #include "graphe.txt" int main() { int choix; Graphe *g; g = (Graphe*)malloc(sizeof(Graphe)); if(g == NULL) { printf("Erreur: Espace mémoire insuffisant\n"); exit(EXIT_FAILURE); } FILE* fichier = fopen("graphe.txt","r"); if(fichier == NULL) { printf("Erreur: Impossible d'ouvrir le fichier %s\n",graphe.txt); exit(EXIT_FAILURE); } printf("\t\tMenu\n\n"); printf("1- Lecture du fichier\n\n"); printf("2- Afficher la matrice d'adjacence\n\n"); printf("3- Afficher le nombre de chemins de longueur 2\n\n"); printf("4- Transformer la matrice d'adjacence du graphe G en une liste de successeurs\n\n"); printf("5- Pour chaque sommet du graphe G, afficher ses successeurs en utilisant la structure de liste des successeurs.\n\n"); printf("6- Construire un graphe à partir des éléments saisis au clavier tout en le stockant dans un fichier.\n\n"); printf("7- Parcours en profondeur du graphe G\n\n"); printf("0- Quitter\n\n\n"); printf("Opération choisie: "); choix = getchar(); getchar(); switch(choix) { case '1' : lireFichier(fichier ,"graphe.txt",g); break; case '0' : exit(EXIT_FAILURE); break; default: printf("Choix erroné\n"); } fclose(fichier); return 0; }
Code:CC=gcc CFLAGS=-I. DEPS = graphe.h OBJ = graphe.o main.o %.o: %.c $(DEPS) $(CC) -c -o $@ $< $(CFLAGS) graphe: $(OBJ) $(CC) -o $@ $^ $(CFLAGS) .PHONY: clean clean: rm -f *.o graphe
-----