Errore compilatore su function

di il
5 risposte

Errore compilatore su function

Salve ragazzi,
sono nuovo su questo forum.
Ho un piccolo problemino di compilazione. Sto facendo un esercizio (https://postimg.org/image/89om0xgwr) per prepararmi all'esame di Prog II ma mi si presenta un errore di compilazione che non riesco a capire.
Il programma non è completo ma dovrebbe confrontare iil campo di un file con il campo di un altro file.
#include <stdio.h>
#include <stdlib.h>
	

typedef struct rubric{
    char cognome_cliente[30];
    int numero_telefono;
} rubricas; 

 typedef struct telefonat{
	int numero_chiamante;
	int numero_chiamato;
	int durata;
} telefonates ;

int main ()
{
	int i,x,y;
	telefonates telefonat1;
    	rubricas rubric1;
	FILE *rubrica;
	FILE *telefonate; 

		 if((rubrica=fopen("rubrica.txt","w"))==NULL)
        	printf("Il file non esiste");
        else
        	printf("\n\t\t\t***Inserimento in rubrica!***\n");
        	printf("\nQuanti contatti vuoi inserire?: ");
        	scanf("%d",&x);
			for(i=0;i<x;i++)
			{	
        		printf("\nCognome cliente:\n");
        		fflush(stdin);
        		scanf("%s",&rubric1.cognome_cliente);
       		    printf("\nNumero di telefono:\n");
        		fflush(stdin);
        		scanf("%d",&rubric1.numero_telefono);
        		fprintf(rubrica,"%s\t%d\n",rubric1.cognome_cliente,rubric1.numero_telefono);
        	}
        fclose(rubrica);
		
		 if((telefonate=fopen("telefonate.txt","w"))==NULL)
        	printf("Il file non esiste");
        else
        	printf("\n\t\t\t***Inserimento telefonate effettuate***\n");
        	printf("\nQuante telefonate vuoi inserire?: ");
        	scanf("%d",&y);
			for(i=0;i<y;i++)
			{
				printf("\nInserisci il numero chiamante: \n");
				fflush(stdin);
				scanf("%d",&telefonat1.numero_chiamante);
				printf("\nInserisci il numero chiamato: \n");
				fflush(stdin);
				scanf("%d",&telefonat1.numero_chiamato);
				printf("\nInserisci la durata della chiamata: \n");
				fflush(stdin);
				scanf("%d",&telefonat1.durata);
				fprintf(telefonate,"%d\t%d\t%d\n",telefonat1.numero_chiamante,telefonat1.numero_chiamato,telefonat1.durata);
			}
}

void List_chiamate(FILE *rubrica,FILE *telefonate,struct rubrica [color=#FF0000]rubric1.numero_telefono[/color] ,struct telefonate telefonat1.numero_chiamante)
{
	if((rubrica=fopen("rubrica.txt","r"))==NULL) 
        	printf("Il file non esiste");
    if((telefonate=fopen("telefonate.txt","w"))==NULL)
        	printf("Il file non esiste");
    else
    	while(!feof)
    	{
    		fscanf(rubrica,"%d",&rubric1);
    		fscanf(telefonate,"%d",&telefonat1);
    		if(rubric1.numero_telefono==telefonat1.numero_chiamante)
    	}
}

[Error] expected ';', ',' or ')' before '.' token

La parte in rosso è quella su cui mi da errore, qualcuno saprebbe aiutarmi?

5 Risposte

  • Re: Errore compilatore su function

    Che roba è
    
    void List_chiamate(FILE *rubrica,FILE *telefonate,struct rubrica [color=
    #FF0000]rubric1.numero_telefono[/color] ,struct telefonate telefonat1.numero_chiamante)
    
    ????
  • Re: Errore compilatore su function

    Dovrebbero essere i parametri della funzione ma so che sono sbagliati, se potresti darmi un aiutino dicendomi come faccio a richiamare un campo di una struct all'interno di una funzione :DDD
  • Re: Errore compilatore su function

    Passi la struct intera e poi, all'interno della funzione, usi il membro che ti serve, esattamente come fai nel main
    
    void List_chiamate(FILE *rubrica, FILE *telefonate, rubricas rubric1 , telefonates telefonat1)
    
  • Re: Errore compilatore su function

    Grazie mille , risolto.
  • Re: Errore compilatore su function

    Ragazzi scusate ancora ma sono alle prime armi ed il mio professore non è bravissimo
    Dovrei inserire i numeri di telefono che sono in tutti e due i file all'interno di una lista.
    Non so come creare una lista e quindi inserire i valori e stamparla.
    Sto da 1 ora cercando su internet a cercare guide su liste ecc.. ma non riesco a trovare nulla.
    Mi sono fermato qui
    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    
       
      typedef struct num_t{
       		int num_telefono;
       		struct num_tel *next;
       	
       }num_te;
       
       typedef struct rubric{
        char cognome_cliente[30];
        int numero_telefono;
    } rubricas;
    
     typedef struct telefonat{
       int numero_chiamante;
       int numero_chiamato;
       int durata;
    } telefonates ;
    
    int main ()
    {
       int i,x,y;
       telefonates telefonat1;
           rubricas rubric1;
           num_te num_tel;
       FILE *rubrica;
       FILE *telefonate;
    
           if((rubrica=fopen("rubrica.txt","w"))==NULL)
               printf("Il file non esiste");
            else
               printf("\n\t\t\t***Inserimento in rubrica!***\n");
               printf("\nQuanti contatti vuoi inserire?: ");
               scanf("%d",&x);
             for(i=0;i<x;i++)
             {   
                  printf("\nCognome cliente:\n");
                  fflush(stdin);
                  scanf("%s",&rubric1.cognome_cliente);
                     printf("\nNumero di telefono:\n");
                  fflush(stdin);
                  scanf("%d",&rubric1.numero_telefono);
                  fprintf(rubrica,"%s\t%d\n",rubric1.cognome_cliente,rubric1.numero_telefono);
               }
            fclose(rubrica);
          
           if((telefonate=fopen("telefonate.txt","w"))==NULL)
               printf("Il file non esiste");
            else
               printf("\n\t\t\t***Inserimento telefonate effettuate***\n");
               printf("\nQuante telefonate vuoi inserire?: ");
               scanf("%d",&y);
             for(i=0;i<y;i++)
             {
                printf("\nInserisci il numero chiamante: \n");
                fflush(stdin);
                scanf("%d",&telefonat1.numero_chiamante);
                printf("\nInserisci il numero chiamato: \n");
                fflush(stdin);
                scanf("%d",&telefonat1.numero_chiamato);
                printf("\nInserisci la durata della chiamata: \n");
                fflush(stdin);
                scanf("%d",&telefonat1.durata);
                fprintf(telefonate,"%d\t%d\t%d\n",telefonat1.numero_chiamante,telefonat1.numero_chiamato,telefonat1.durata);
                Lista_chiamate(rubrica,telefonate,rubric1,telefonat1);
                stampa_lista(num_tel);
             }
    }
    
     void Lista_chiamate(FILE *rubrica, FILE *telefonate, rubricas rubric1 , telefonates telefonat1, num_te num_tel)
    {
    	
       if((rubrica=fopen("rubrica.txt","r"))==NULL)
               printf("Il file non esiste");
        if((telefonate=fopen("telefonate.txt","w"))==NULL)
               printf("Il file non esiste");
        else
           while(!feof)
           {
              fscanf(rubrica,"%d",&rubric1.numero_telefono);
              fscanf(telefonate,"%d",&telefonat1.numero_chiamante);
              if(rubric1.numero_telefono==telefonat1.numero_chiamante);
             num_tel=(num_te *)malloc(sizeof(num_te));
             num_tel.next=NULL;
    In realtà non so nemmeno se l'ultima parte di codice è fatta bene (non credo proprio)...
Devi accedere o registrarti per scrivere nel forum
5 risposte