Thread: Undefined reference to functions

  1. #1
    Registered User
    Join Date
    Jun 2019
    Posts
    2

    Undefined reference to functions

    I have to simulate real estate Platform, I used 3 functions to show to users brokers, clients and houses lists, but elcipse give me that error on the title… I don't know what I wrong ...


    Code:
    #include <stdio.h>
    #include <stdlib.h>
    // definizioni di costanti simboliche
    #define MAX 20
    #define COST2 3
    void visualizzazione_clienti();
    void visualizzazione_professionisti();
    void visualizzazione_immobili();
    typedef struct {
     int giorno;
     char mese[MAX];
     int anno;
    
    }
    data_t;
    
    typedef struct{
     char nome[MAX];
     char cognome[MAX];
     char tipo_cliente[MAX];
     float budget;
     char immobile_cercato[MAX];
     char mail[MAX];
     int num_telefono;
    }
    cliente_t;
    
    typedef struct{
     int id;
     char nome[MAX];
     char cognome[MAX];
     char area_competenza[MAX];
     int case_vendute;
     float totale_venduto;
     int anni_exp;
     char mail[MAX];
     int num_telefono;
    }
    professionista_t;
    
    typedef struct{
     int id;
     data_t data_carico; // data di presa in carico
     char tipo_immobile[MAX];
     float prezzo;
     char localita[MAX];
     char zona[MAX];
     int bagni;
     char servizi_vicini[MAX];
     int camino;
     char giardino[COST2];
     char  terrazzo[COST2];
     int num_balconi;
     float metri_quadri;
     int garage;
     int num_finestre;
     int num_stanze;
    }
    immobile_t;
    
    int main(void){
     int n_scelta; // numero per la "scelta"
     printf("La tua scelta-> ");
     scanf("%d", &n_scelta);
     puts("\n\n\nPREMI 1 PER VISUALIZZARE L'ELENCO DEI CLIENTI");
     puts("\nPREMI 2 PER VISUALIZZARE L'ELENCO DEI PROFESSIONISTI");
     puts("\nPREMI 3 PER VISUALIZZARE L'ELENCO DEGLI IMMOBILI");
    
     do{
     switch(n_scelta){
     case '1':
      visualizzazione_clienti();
      break;
     case '2':
      visualizzazione_professionisti();
      break;
     case '3':
      visualizzazione_immobili();
      break;
     }
     } while(n_scelta!=0);
     system("pause");
     return 0;
    }
    
    void visualizza_clienti(){
     cliente_t cliente;
     FILE *fileclienti;
     if((fileclienti=fopen("C://Users//Giuseppe//Desktop//new workspace//Agenzia_immobiliare_GRUPPO2//clienti.txt","r"))==NULL){
       puts("\nErrore nell'apertura");
      }
      else{
       while (fscanf(fileclienti, "%19s" "%19s" "%19s" "%f" "%19s" "%19s" "%d", cliente.nome, cliente.cognome, cliente.tipo_cliente, &cliente.budget, cliente.immobile_cercato, cliente.mail, &cliente.num_telefono)!= EOF ){
        puts("\n-------------------------------------\n");
        printf("\nNOME: %s ",cliente.nome);
        printf("\nCOGNOME: %s ", cliente.cognome);
        printf("\nTIPO DI CLIENTE: %s ", cliente.tipo_cliente);
        printf("\nBUDGET: %.2f ", cliente.budget);
        printf("\nIMMOBILE CERCATO: %s ", cliente.immobile_cercato);
        printf("\nMAIL: %s ", cliente.mail);
        printf("\nNUMERO DI TELEFONO: %d\n\n", cliente.num_telefono);
       }
      }
    }
    void visualizza_professionisti(){
     professionista_t professionista;
     FILE *fileprof;
     if((fileprof=fopen("C://Users//Giuseppe//Desktop//new workspace//Agenzia_immobiliare_GRUPPO2//professionisti.txt", "r"))==NULL){
       puts("\nErrore nell'apertura");
      }
      else{
       while(fscanf(fileprof, "%d" "%19s" "%19s" "%14s" "%d" "%f" "%d" "%19s" "%d", &professionista.id, professionista.nome, professionista.cognome, professionista.area_competenza, &professionista.case_vendute, &professionista.totale_venduto, &professionista.anni_exp, professionista.mail, &professionista.num_telefono )!=EOF){
        puts("\n-------------------------------------\n");
        printf("\nID: %d ", professionista.id);
        printf("\nNOME: %s ", professionista.nome);
        printf("\nCOGNOME: %s ", professionista.cognome);
        printf("\nAREA DI COMPETENZA: %s ",professionista.area_competenza);
        printf("\nCASE VENDUTE: %d ", professionista.case_vendute);
        printf("\nTOTALE VENDUTO: %.2f", professionista.totale_venduto);
        printf("\nANNI DI ESPERIENZA: %d", professionista.anni_exp);
        printf("\nMAIL: %s ", professionista.mail);
        printf("\nNUMERO DI TELEFONO: %d\n\n", professionista.num_telefono);
       }
      }
    }
    void visualizza_immobili(){
     immobile_t immobile;
     FILE *fileimmobili;
     if((fileimmobili=fopen("C://Users//Giuseppe//Desktop//new workspace//Agenzia_immobiliare_GRUPPO2//immobili.txt","r"))==NULL){
           puts("\nErrore nell'apertura");
     }
     else{
      while(fscanf(fileimmobili, "%d" "%d" "%19s" "%d" "%19s" "%f" "%19s" "%19s" "%d" "%19s" "%d" "%2s" "%2s" "%d" "%f" "%d" "%d" "%d", &immobile.id, &immobile.data_carico.giorno, immobile.data_carico.mese, &immobile.data_carico.anno, immobile.tipo_immobile, &immobile.prezzo, immobile.localita,immobile.zona, &immobile.bagni, immobile.servizi_vicini, &immobile.camino, immobile.giardino, immobile.terrazzo, &immobile.num_balconi, &immobile.metri_quadri, &immobile.num_finestre, &immobile.garage, &immobile.num_stanze)!=EOF){
       puts("\n-------------------------------------\n");
       printf("\nID: %d ", immobile.id);
       printf("\nDATA DI PRESA IN CARICO\n ");
       printf("\nGIORNO-> %d ", immobile.data_carico.giorno);
       printf("\nMESE-> %s ", immobile.data_carico.mese);
       printf("\nANNO-> %d\n\n", immobile.data_carico.anno);
       printf("\nTIPO IMMOBILE: %s ", immobile.tipo_immobile);
       printf("\nPREZZO: %.3f ", immobile.prezzo);
       printf("\nLOCALITA': %s ", immobile.localita);
       printf("\nZONA: %s ", immobile.zona);
       printf("\nBAGNI: %d", immobile.bagni);
       printf("\nSERVIZI VICINI: %s ", immobile.servizi_vicini);
       printf("\nCAMINO: %d ", immobile.camino);
       printf("\nGIARDINO: %s ", immobile.giardino);
       printf("\nTERRAZZO: %s ", immobile.terrazzo);
       printf("\nNUMERO DEI BALCONI: %d ", immobile.num_balconi);
       printf("\nMETRI QUADRI: %.2f ", immobile.metri_quadri);
       printf("\nNUMERO DELLE FINESTRE: %d ",immobile.num_finestre);
       printf("\nGARAGE: %d ", immobile.garage);
       printf("\nNUMERO DELLE STANZE: %d ",immobile.num_stanze);
      }
     }
    }

  2. #2
    Registered User rstanley's Avatar
    Join Date
    Jun 2014
    Location
    New York, NY
    Posts
    1,106
    Check the spelling of the function declarations against the function definitions, and the calls, and see if you see the problem.

  3. #3
    Registered User
    Join Date
    Jun 2019
    Posts
    2
    Quote Originally Posted by rstanley View Post
    Check the spelling of the function declarations against the function definitions, and the calls, and see if you see the problem.
    Hey man, you save me ahahah, thanks a lot! I don't know how I didnt noticed it ahah

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 3
    Last Post: 11-14-2010, 11:14 AM
  2. gcc: undefined reference for phidgets functions
    By chris24300 in forum C Programming
    Replies: 1
    Last Post: 09-11-2009, 12:46 PM
  3. Undefined Reference to functions, that CAN be found
    By Carola in forum C++ Programming
    Replies: 8
    Last Post: 08-27-2009, 05:59 AM
  4. Undefined Reference to...
    By JJFMJR in forum C++ Programming
    Replies: 3
    Last Post: 08-16-2008, 03:09 AM
  5. Replies: 11
    Last Post: 12-14-2005, 02:09 AM

Tags for this Thread