Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] error: expected expression before "TotalAI"

    24 avril 2019 à 18:28:22

    Bonjour,

    Etant débutant en C, je rencontre un problème que je n'arrive pas à résoudre depuis deux heures : ma structure a bien été déclarée correctement mais on me dit qu'il manque quelque chose avant la structure CalculImmo sur le main.c. Pouvez-vous m'éclairer sur ça svp ?

    Main.c :

    #include <stdio.h>
    #include <stdlib.h>
    #include "./Actions/bilan.h"
    #include <errno.h>
    #include <conio.h>
    
    int main(int argc, char **argv) {
        struct CalculCirculant;
        struct CalculImmo;
        /* ===== */
        int menu;
        int menuClients;
        char nom [20];
        char prenom [20];
        char nomCheval [20];
        char couleurRobe [15];
        char sexe [1];
        char DateNaissance [50];
        char taille [10];
        char race[20];
        /* DEFINITIONS */
        
        printf("Base de donnees du centre equestre BLABLABLA :\n");
        printf("============================================\n");
        printf("Choix : \n");
        printf("1 : Liste des clients\n2 : Liste des chevaux \n3: Bilan");
        printf("\nChoix :");
        scanf("\n%d",&menu);
        
        
    switch (menu){
        case 1:
        system("@cls||clear");
        printf("Base de donnees des clients :\n");
        printf("============================================\n");
        printf("Choix : \n");
        printf("1 : Ajouter un client\n2 : Voir les clients\n");
        printf("\nChoix :");
        scanf("\n%d",&menuClients);
        break;
        
        case 2:
        system("@cls||clear");
        printf("Base de données des chevaux :\n");
        printf("============================================\n");
        printf("Veuillez saisir le nom : \n");
        scanf("%25s",nomCheval);
        printf("Veuillez spécifier la date de naissance :");
        scanf("%50s", DateNaissance);
        printf("Veuillez spécifier le sexe du cheval (M | F):");
        scanf("%1s", sexe);
        printf("Veuillez spécifier la taille du cheval :");
        scanf("%10s", taille);
        printf("Veuillez spécifier la couleur de la robe :");
        scanf("%15s", couleurRobe);
        printf("Veuillez spécifier la race du cheval :");
        scanf("%20s", race);
        FILE* fichierCheval = NULL;
        fichierCheval = fopen("Chevaux.txt", "a+");
        if(fichierCheval != NULL){
            fprintf(fichierCheval, "Nom du cheval : %s\n", nomCheval);
            fprintf(fichierCheval, "Date de naissance : %s\n", DateNaissance);
            fprintf(fichierCheval, "Sexe : %s\n", sexe);
            fprintf(fichierCheval, "Taille : %s\n", taille);
            fprintf(fichierCheval, "Couleur de la robe : %s\n", couleurRobe);
            fprintf(fichierCheval, "Race : %s\n", race);
            fclose(fichierCheval);
        }
        
        else{
            printf("Fichier introuvable.");
        }
        break;
        
        case 3:
        printf("Veuillez saisir les immobilisations incorporelles :\n");
        scanf("%ld", CalculImmo.ImmobiliIncorpo);
        printf("Veuillez saisir les terrains :\n");
        scanf("%ld", CalculImmo.TerrainsCalc);
        printf("Veuillez saisir les constructions :\n");
        scanf("%ld", CalculImmo.MaterielsContstruc);
        printf("Veuillez saisir les immobilisations financières :\n"),
        scanf("%ld", CalculImmo.ImmoFinancieres);
        
        FILE* FichierBilan = NULL;
        FichierBilan = fopen("Bilans.txt", "a+");
        if(FichierBilan != NULL){
            fprintf(FichierBilan, "Immobilisations incorporelles :", CalculImmo.ImmobiliIncorpo);
            fprintf(FichierBilan, "Immobilisations corporelles :", CalculImmo.ImmobiliCorpoTotal);
            fprintf(FichierBilan, "Terrains :", CalculImmo.TerrainsCalc);
            fprintf(FichierBilan, "Constructions :", CalculImmo.ConstructCalc);
            fprintf(FichierBilan, "Matériels :", CalculImmo.MaterielsContstruc);
            fprintf(FichierBilan, "Immobilisations financières :", CalculImmo.ImmoFinancieres);
            fprintf(FichierBilan, "Total Actif Immobilisé :", CalculImmo.TotalAI);
        }
        
        default:
        printf("Choix invalide.");
        break;
    }
        
        switch (menuClients){        
            case 1:
            system("@cls||clear");
            printf("Veuillez saisir le NOM :");
            scanf("%20s", nom);
            printf("\nVeuillez saisir le prénom :");
            scanf("%20s", prenom);
            FILE* fichierClients = NULL;
            fichierClients = fopen("Clients.txt", "a+");
            if(fichierClients !=NULL){
                fprintf(fichierClients, "Nom : %s\n", nom);
                fprintf(fichierClients, "Prénom : %s\n", prenom);
                fclose(fichierClients);
            }
            else{
                printf("Fichier introuvable.");
            }
           
            break;
            
            case 2:
            
            break;
            
            default:
            printf("Choix invalide !");
            break;
        };
        
        
        
    return 0;
    }
    
    


    bilan.h :

    struct CalculActifImmo{
        long ImmobiliIncorpo;
        long ImmobiliCorpo;
        long TerrainsCalc;
        long ConstructCalc; 
        long MaterielsContstruc; 
        long ImmoFinancieres;
        long TotalAI = ImmobiliCorpo + ImmobiliIncorpo + TerrainsCalc + ConstructCalc + MaterielsContstruc + ImmoFinancieres;
        long ImmobiliCorpoTotal = TerrainsCalc + ConstructCalc + MaterielsContstruc;
    };
    typedef struct CalculActifImmo CalculImmo;
    
    struct CalculActifCirculant{
        long Stocks;
        long MP;
        long ProduitsFinis;
        long Marchandises;
        long Creances;
        long ClientsCAC;
        long AutresCreances;
        long Disponibilites;
    };
    
    typedef struct CalculActifCirculant CalculCirculant;
    
    struct AmortDeprec{
        long a;
    };
    typedef struct AmortDeprec AmortEtDeprec;



    -
    Edité par TadasJS 24 avril 2019 à 18:38:28

    • Partager sur Facebook
    • Partager sur Twitter
      24 avril 2019 à 19:01:11

      Hello,

      Lignes 8 et 9: il manque le nom d'une variable. Là, c'est comme si tu écrivais int ; sans mettre d'identifiant.

      Edit: je 'ai pas tout lu, mais un scanf("\n%d",....) pourrait poser un problème. Je mettrais le \n dans le printf() qui précède.

      -
      Edité par edgarjacobs 24 avril 2019 à 19:05:31

      • Partager sur Facebook
      • Partager sur Twitter

      Aucune aide ne sera donnée par mp

        24 avril 2019 à 19:15:35

        Justement, les lignes 8 à 9 sont des structures

        edgarjacobs a écrit:

        Hello,

        Lignes 8 et 9: il manque le nom d'une variable. Là, c'est comme si tu écrivais int ; sans mettre d'identifiant.

        Edit: je 'ai pas tout lu, mais un scanf("\n%d",....) pourrait poser un problème. Je mettrais le \n dans le printf() qui précède.

        -
        Edité par edgarjacobs il y a 5 minutes



        • Partager sur Facebook
        • Partager sur Twitter
          24 avril 2019 à 19:28:07

          En fait, tu dois écire (j'avais mal lu),

          struct CalculActifCirculant nom_de_variable;
          struct CalculActifImmo nom_de_variable;

          ou (en utilisant tes typedef)

          CalculCirculant nom_de_variable;
          CalculImmo nom_de_variable;

          -
          Edité par edgarjacobs 24 avril 2019 à 19:29:06

          • Partager sur Facebook
          • Partager sur Twitter

          Aucune aide ne sera donnée par mp

            24 avril 2019 à 19:47:52

            Voilà ce que j'ai maintenant en mettant la première solution (j'ai converti mes valeurs du CalculImmo en pointeurs au cas où)

            edgarjacobs a écrit:

            En fait, tu dois écire (j'avais mal lu),

            struct CalculActifCirculant nom_de_variable;
            struct CalculActifImmo nom_de_variable;

            ou (en utilisant tes typedef)

            CalculCirculant nom_de_variable;
            CalculImmo nom_de_variable;

            -
            Edité par edgarjacobs il y a 12 minutes



            • Partager sur Facebook
            • Partager sur Twitter

            [C] error: expected expression before "TotalAI"

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown