Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    7

    AIUTO compilazione progr.

    ciao a tutti....sono alle prese con i file in c e devo compilare questo pezzo di codice in cui ci sono un pò di errori....ho provato a compilarlo con devc++ ma ci sono errori ke nn riesco proprio a correggere. Potreste darmi una mano a riuscire a mandare in esecuzione qst programmino? Grazie anticipatamente e spero in una vostra risposta.

    #include<stdio.h>
    #include<malloc.h>
    main()
    {
    struct record
    {
    char nome[10];
    char cognome[15];
    char indirizzo[25];
    char ntel[15];
    char ncel[15];
    }*buffer;
    FILE *pf;
    int f,t;
    char n[10],c[15];
    do
    {
    printf("scegli tra le seguenti opzioni");
    printf("1=INSERIMENTO\n;2=cerca nominativo e ntel\n;3=stampa la rub\n;4=non lo so\n;5=esci");
    scanf("%d",& t);
    switch(t);
    {
    case 1:
    {caricamento();
    break;}
    case 2:
    {cerca();
    break;}
    case 3:
    {stamparub();
    break;}
    case 4:
    {stampacell();
    break;}
    }
    }
    while(t!=5);
    }
    void caricamento()
    {
    buffer=(struct record*)malloc(sizeof(struct record));
    pf=fopen("rubrica","w");
    if(pf==NULL)
    printf("errore");
    else
    {
    do
    {
    printf("se non inserisci un campo scrivi x");
    printf("inserisci il nome\n");
    scanf("%s",& buffer->nome);
    scanf("%s",& buffer->cognome);
    scanf("%s",& buffer->indirizzo);
    scanf("%s",& buffer->ntel);
    scanf("%s",& buffer->ncel);
    fwrite(buffer,sizeof(struct record),1,pf);
    printf("vuoi inserire un altro dato? SI=1 NO=0");
    scanf("%d",& f);
    }
    while(f==1);
    fclose(pf);
    return();
    }
    }
    void stamparub();
    {
    pf=fopen("rubrica","r");
    if(pf==NULL)
    printf("errore apertura file");
    else
    {
    while(feof(pf)==0)
    {
    fread(buffer,sizeof(struct record),1,pf);
    printf("il nome è:%s\n", buffer->nome);
    printf("il nome è:%s\n", buffer->cognome);
    printf("il nome è:%s\n", buffer->indirizzo);
    printf("il nome è:%s\n", buffer->ntel);
    printf("il nome è:%s\n", buffer->ncel);
    }
    fclose(pf);
    }
    return();
    }
    void stampacell()
    {
    pf=fopen("rubrica","r");
    if(pf==NULL)
    printf("errore apertura file");
    else
    {
    while(feof(pf)==0)
    {
    fread(buffer,sizeof(struct record),1,pf);
    if(buffer->ncel==NO)
    fread(buffer,sizeof(struct record),1,pf;
    else
    {
    printf("il nome è %s\n", buffer->nome);
    printf("il cognome è %s\n", buffer->cognome);
    printf("il ncel è %s\n", buffer->ncel);
    fread(buffer,sizeof(struct record),1,pf);
    }
    }
    }
    fclose(pf)
    return();
    }
    void cerca()
    {
    printf("nome e cognome");
    scanf("%s",& n);
    scanf("%s",& c);
    pf=fopen("rubrica","r");
    if(pf==NULL)
    printf("errore apertura file");
    else
    {
    while(feof(pf)==0)
    {
    fread(buffer,sizeof(struct record),1,pf);
    if(n==buffer->nome)&&(c==buffer->cognome);
    {
    printf("il n di tel è %s\n", buffer->ntel);
    printf("il cognome è %s\n", buffer->cognome);
    printf("il nome è %s\n", buffer->nome);
    }
    }
    fclose(pf)
    return();
    }




  2. #2
    In effetti è un pò un disastro il codice...stai meno a riscriverlo in modo umano...

    ad ogni modo fra i tanti errori che ci saranno...

    - togli il ; dopo lo switch(t)
    - scrivi i prototipi delle funzioni utilizzate prima del main
    - togli i ; dopo void stamparub()
    - ecc ecc ecc

    Insomma a mio avviso fai prima a riscrivere tutto...maggiormente quando sei agli inizi prendi l'abitudine di scrivere poco codice e buildare spesso...in modo da non arrivare alla fine con 32 errori e 20 e passa warnings...

    e se posti codice nel forum postalo con le indentazioni...o diventa indecifrabile pls

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    7
    TESTO:
    Su di un file di nome rubrica registrare nome, cognome, indirizzo, numero di telefono e cellulare con l’ipotesi che alcune di queste informazioni possano non esserci. Produrre un programma che permetta di scegliere se rintracciare un numero di telefono o stampare l’intera rubrica o stampare i soli numeri cellulari con relativo nominativo.

    ecco questo è il testo dell'esercitazione..
    PS:io volevo mandarlo indentato il pezzo di codice ma nn so come si fa....

    cmq vedendo il testo dell'esercitazione secondo te si può anke accorciare il pezzo di codice(pieno di errori) ke ho fatto io?? grazie ancora per la pazienza

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    7

    [C]messaggio di errore su devc++

    expected primary-expression before "void"
    expected `;' before "void"

    questi sono i messaggi di errore ke mi da il programma quando vado a compilare il codice..qualcuno mi può aiutare a correggerli? io nn riesco proprio a trovare via d'uscita..
    Grazie a ki vorrà aiutarmi

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Magari se ci fai vedere il codice ... altrimenti cosa si corregge?

  6. #6

    Re: [C]messaggio di errore su devc++

    Originariamente inviato da kekkino
    expected primary-expression before "void"
    expected `;' before "void"

    questi sono i messaggi di errore ke mi da il programma quando vado a compilare il codice..qualcuno mi può aiutare a correggerli? io nn riesco proprio a trovare via d'uscita..
    Grazie a ki vorrà aiutarmi
    Bè mostra una porzione del codice dove ti da errore perchè così,
    alla cieca, è difficile venirne a capo
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    7
    codice:
    #include<stdio.h>
    #include<malloc.h>
    main()
    {
          struct record
          {
                 char nome[10];
                 char cognome[15];
                 char indirizzo[25];
                 char ntel[15];
                 char ncel[15];
          }*buffer;
     FILE *pf;
     int f,t;
     char n[10],c[15];
     double caricamento(void);
     double cerca(void);
     double stamparub(void);
     double stampacell(void);
     do
     {
          printf("scegli tra le seguenti opzioni");
          printf("1=INSERIMENTO\n;2=cerca nominativo e ntel\n;3=stampa la rub\n;4=non lo so\n;5=esci");
          scanf("%d",& t);
          switch(t)
          {
           case 1:
                {
                    caricamento();
                    break;
                }
           case 2:
                {
                    cerca();
                    break;
                }
           case 3:
                {
                    stamparub();
                    break;
                }
           case 4:
                {
                    stampacell();
                    break;
                }
           default:
           break;     
          }
     }     
     while(t!=5);
           
     void caricamento()
     {
          buffer=(struct record*)malloc(sizeof(struct record));
          pf=fopen("rubrica","w");
          if(pf==NULL)
           printf("errore");
          else
          {
              do
              {
                            printf("se non inserisci un campo scrivi x");
                            printf("inserisci il nome\n");
                            scanf("%s",& buffer->nome);
                            scanf("%s",& buffer->cognome);
                            scanf("%s",& buffer->indirizzo);
                            scanf("%s",& buffer->ntel);
                            scanf("%s",& buffer->ncel);
                            fwrite(buffer,sizeof(struct record),1,pf);
                            printf("vuoi inserire un altro dato? SI=1 NO=0");
                            scanf("%d",& f);
              }
              while(f==1);
              fclose(pf);
              return();
          }
     }
     void stamparub()
     {
          pf=fopen("rubrica","r");
          if(pf==NULL)
           printf("errore apertura file");
          else
          {
              while(feof(pf)==0)
              {
                                fread(buffer,sizeof(struct record),1,pf);
                                printf("il nome è:%s\n", buffer->nome);          
                                printf("il cognome è:%s\n", buffer->cognome);
                                printf("l'indirizzo è:%s\n", buffer->indirizzo);
                                printf("il ntel è:%s\n", buffer->ntel);
                                printf("il ncel è:%s\n", buffer->ncel);
              }
             fclose(pf);
          }
        return();
     }
     void stampacell()
     {
          pf=fopen("rubrica","r");
          if(pf==NULL)
           printf("errore apertura file");
          else
          {
              while(feof(pf)==0)
              {
                                fread(buffer,sizeof(struct record),1,pf);
                                if(buffer->ncel==NO)
                                 fread(buffer,sizeof(struct record),1,pf;
                                else
                                {
                                    printf("il nome è %s\n", buffer->nome);
                                    printf("il cognome è %s\n", buffer->cognome);
                                    printf("il ncel è %s\n", buffer->ncel);
                                    fread(buffer,sizeof(struct record),1,pf);
                                }
              }
          }
         fclose(pf);
         return();
     } 
     void cerca()
     {
          printf("nome e cognome");
          scanf("%s",& n);
          scanf("%s",& c);
          pf=fopen("rubrica","r");
          if(pf==NULL)
           printf("errore apertura file");
          else
          {
              while(feof(pf)==0)
              {
                                fread(buffer,sizeof(struct record),1,pf);
                                if(n==buffer->nome)&&(c==buffer->cognome)
                                 {
                                    printf("il n di tel è %s\n", buffer->ntel);
                                    printf("il cognome è %s\n", buffer->cognome);
                                    printf("il nome è %s\n", buffer->nome);
                                 }
              }
         fclose(pf);
         return();
     }
    ecco il codice grazie x l'aiuto

  8. #8
    Non hai chiuso il main dopo l'istruzione while

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Perche' questa parte

    codice:
          struct record
          {
                 char nome[10];
                 char cognome[15];
                 char indirizzo[25];
                 char ntel[15];
                 char ncel[15];
          }*buffer;
    
     double caricamento(void);
     double cerca(void);
     double stamparub(void);
     double stampacell(void);
    lo hai posto dentro il main? Deve stare fuori ...

    E poi, se dichiari

    double caricamento(void);

    perche' dopo diventa

    void caricamento(void);

    ?

    E dopo la while, il programma termina? Se e' cosi' ci vuole la }
    ma mi sembra abbastanza strano che termini cosi' ...

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    7
    in teoria termina lì però come mai devo mettere la struct fuori dal main?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.