Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - liste e file...
Forum - C/C++ - liste e file...

Avatar
giovybus (Member)
Rookie


Messaggi: 50
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 11:55
Giovedì, 29/07/2010
Salve ragazzi!... mi sapete dire perché mi da errore il compilatore con questo codice??.. cosa c'è di sbagliato??

Codice sorgente - presumibilmente C/C++

  1. list_t *
  2. init_list(list_t *list, FILE *fp){
  3.  
  4.         list_t *head;
  5.         fp = fopen("file.gn", "a+");
  6.  
  7.         if(fp){
  8.                 list = (list_t *)malloc(sizeof(list_t)); /*Alloco il primo elemento della lista*/
  9.                
  10.                 fscanf(fp, "%s\t", list ->name_matter);/*Inserisco i vari dati dal file*/
  11.                 fscanf(fp, "%d\t", list ->valutation);
  12.                 fscanf(fp, "%d\t", list ->day);
  13.                 fscanf(fp, "%d\t", list ->mounth);
  14.                 fscanf(fp, "%d\t", list ->year);
  15.                 head = list; /*tengo il riferimento della testa della lista*/
  16.                 while(feof(fp)){
  17.                         list ->next = (list_t *)malloc(sizeof(list_t));/*alloco l'elemento successivo*/
  18.                         list = list -> next;/*sposto il puntatore all'elemento successivo che ho allocato precedentemente*/
  19.                         fscanf(fp, "%s\t", list ->name_matter);/*Inserisco i vari dati dal file*/
  20.                         fscanf(fp, "%d\t", list ->valutation);
  21.                         fscanf(fp, "%d\t", list ->day);
  22.                         fscanf(fp, "%d\t", list ->mounth);
  23.                         fscanf(fp, "%d\t", list ->year);               
  24.                 }
  25.                         list -> next = NULL;
  26.                         return head;
  27.         }else{
  28.                 return list = NULL;
  29.         }
  30.  
  31. }


PM Quote
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 12:05
Giovedì, 29/07/2010
posta l'errore no?

PM Quote
Avatar
giovybus (Member)
Rookie


Messaggi: 50
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 12:08
Giovedì, 29/07/2010
prima mi da quest errore nel file.h  
'list_t' : 'struct' type redefinition

e poi questi errori a raffica in corrispondenza di ogni fscanf
use of undefined type 'list_t'

PM Quote
Avatar
giovybus (Member)
Rookie


Messaggi: 50
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 12:09
Giovedì, 29/07/2010
da premettere che sto usando visual studio!...

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 12:49
Giovedì, 29/07/2010
tipo di lista non definito :heehee:

forse manca un # define 8-|

Ultima modifica effettuata da Ultimo il 29/07/2010 alle 12:51


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
giovybus (Member)
Rookie


Messaggi: 50
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 18:02
Giovedì, 29/07/2010
Questa è una funzione!... :)

PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 20:13
Giovedì, 29/07/2010
ma perchè non posti tutti il codice ?

PM Quote
Avatar
giovybus (Member)
Rookie


Messaggi: 50
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 10:40
Venerdì, 30/07/2010
da premettere che sto programmando con la programmazione strutturata qundi ho tre file due .c e uno .h

questo è il file.c

Codice sorgente - presumibilmente C++

  1. #include "stdafx.h"
  2. #include "stdlib.h"
  3. #include "string.h"
  4. #include "materie2.0.h"
  5.  
  6. list_t *
  7. init_list(list_t *list, FILE *fp){
  8.  
  9.         list_t *head;
  10.         fp = fopen("file.gn", "w");
  11.  
  12.         if(fp){
  13.                 list = (list_t *)malloc(sizeof(list_t)); /*Alloco il primo elemento della lista*/
  14.                
  15.                 fscanf(fp, "%s\t", list ->name_matter);/*Inserisco i vari dati dal file*/
  16.                 fscanf(fp, "%d\t", list ->valutation);
  17.                 fscanf(fp, "%d\t", list ->day);
  18.                 fscanf(fp, "%d\t", list ->mounth);
  19.                 fscanf(fp, "%d\t", list ->year);
  20.                 head = list; /*tengo il riferimento della testa della lista*/
  21.                 while(feof(fp)){
  22.                         list ->next = (list_t *)malloc(sizeof(list_t));/*alloco l'elemento successivo*/
  23.                         list = list -> next;/*sposto il puntatore all'elemento successivo che ho allocato precedentemente*/
  24.                         fscanf(fp, "%s\t", list ->name_matter);/*Inserisco i vari dati dal file*/
  25.                         fscanf(fp, "%d\t", list ->valutation);
  26.                         fscanf(fp, "%d\t", list ->day);
  27.                         fscanf(fp, "%d\t", list ->mounth);
  28.                         fscanf(fp, "%d\t", list ->year);               
  29.                 }
  30.                         list -> next = NULL;
  31.                         return head;
  32.         }else{
  33.                 return list = NULL;
  34.         }
  35.  
  36. }



nel file .h ci sono solo i prototipi delle funzioni e la struttura lista
e nell'eltro file.c c'è il main con la chiamata a funzione
il resto funzione benissimo solo qui ho il problema!...

PM Quote