Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Problème de compilation



  1. #1
    scarf20

    Problème de compilation


    ------

    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:
    #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 graphe.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 main.c :
    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 du fichier Makefile:
    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

    -----

  2. Publicité
  3. #2
    Paraboloide_Hyperbolique

    Re : Problème de compilation

    Bonjour,

    C'est tout bête: vous incluez le fichier "graphe.txt" dans votre fichier main à la ligne 5. Problème pas vu à cause de la fatigue ?

  4. #3
    umfred

    Re : Problème de compilation

    plus une erreur sur cette ligne de code je pense;
    Code:
    printf("Erreur: Impossible d'ouvrir le fichier %s\n",graphe.txt);
    mettre graphe.txt entre guillemet (ou directement à la place de %s)

  5. #4
    polo974

    Re : Problème de compilation

    On n'inclue pas un fichier texte.
    Et en général pas un .c non plus.

    Main:
    Ligne 4 remplacer.c par .h
    Ligne 5: la supprimer
    Jusqu'ici tout va bien...

  6. A voir en vidéo sur Futura

Discussions similaires

  1. [Programmation] Problème compilation
    Par marcuccio19 dans le forum Électronique
    Réponses: 10
    Dernier message: 04/06/2017, 17h46
  2. problème de compilation
    Par Khalil_ dans le forum Électronique
    Réponses: 4
    Dernier message: 12/01/2015, 13h23
  3. Problème de compilation
    Par DADYCOKE dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 22/02/2013, 10h12
  4. problème de compilation
    Par zou2020 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 06/04/2012, 13h28
  5. Problème de compilation
    Par mecanica dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 15/09/2008, 04h07