|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2001
Città: Napoli
Messaggi: 102
|
Passaggio parametri in C
Ragazzi qualcuno può aiutarmi?
void carica_stanze(elem *punt_testa, int *tot_stanze) { FILE *fp = fopen("info.txt","r"); if (fp == NULL) printf ("ERRORE NELL'APERTURA DEL FILE ! \n"); else { inserimento_stanze_pila(fp,&(*punt_testa),&(*tot_stanze)); //numero di stanze } fclose (fp); //chiudo il file } void inserimento_stanze_pila(FILE fp,elem *punt_testa, int *tot_stanze) { int num,piano,num_stanze,flag=0; while (fscanf (fp, "%d", &num) != EOF ) //lettura file { if (flag==0) { piano=num; //leggo il piano flag=1; //imposto la flag a 1,in tal modo dopo leggero' il numero } //di stanze occupate else { num_stanze=num; //stanze occupate *tot_stanze=*tot_stanze+num; //numero totale di stanze occupate in una giornata flag=0; inserimento(punt_testa, piano, num_stanze); //inserisco nella pila piano e } //numero di stanze } } COme faccio a passare fp(grassetto) altra procedura e poi utilizzarla? Sto andando al manicomio, ho provato in tutti i modi!!!!!!Non sò
__________________
AMD ATHLON XP 2200+, 512Mb DDR PC3200, HDD 160Gb ATA133 8Mb BUFFER, SK VIDEO ATi Radeon 9000 64Mb DDR VIVO, MAST. DVD Dual-Layers!!!! WIN XP SP2 - Linux, Router Trust 445A |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Aug 2004
Messaggi: 39
|
fp è un puntatore!
Il parametro formale va dichiarato come FILE *fp non FILE fp ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Re: Passaggio parametri in C
[quote]Originariamente inviato da enzocacace
Ragazzi qualcuno può aiutarmi? Codice:
FILE *fp = fopen("info.txt","r"); ![]() ![]() cmq quando passi metti fp nei parametri formali mentre nei paramentri attuali ci metti FILE **fp dovrebbe funzionare ![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Re: Re: Passaggio parametri in C
[quote]Originariamente inviato da Fenomeno85
Quote:
|
|
![]() |
![]() |
![]() |
#5 | ||
Member
Iscritto dal: Aug 2004
Messaggi: 39
|
Perché vi dovete complicare la vita!?
Si fa così: Codice:
FILE *fp; ... funzione(fp /*parametro reale*/ ); // la chiamata ... void funzione (FILE * fp /* parametro formale*/) { ... } Quote:
Quote:
Ciao! |
||
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Quote:
|
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Oct 2001
Città: Napoli
Messaggi: 102
|
Re: Passaggio parametri in C
Cmq ho risolto già, ed era come dicevate voi!!!
void carica_stanze(elem *punt_testa, int *tot_stanze) { FILE *fp = fopen("info.txt","r"); if (fp == NULL) printf ("ERRORE NELL'APERTURA DEL FILE ! \n"); else { inserimento_stanze_pila(fp,&(*punt_testa),&(*tot_stanze)); //numero di stanze } fclose (fp); //chiudo il file } void inserimento_stanze_pila(FILE *fp,elem *punt_testa, int *tot_stanze) { int num,piano,num_stanze,flag=0; while (fscanf (fp, "%d", &num) != EOF ) //lettura file { if (flag==0) { piano=num; //leggo il piano flag=1; //imposto la flag a 1,in tal modo dopo leggero' il numero } //di stanze occupate else { num_stanze=num; //stanze occupate *tot_stanze=*tot_stanze+num; //numero totale di stanze occupate in una giornata flag=0; inserimento(punt_testa, piano, num_stanze); //inserisco nella pila piano e } //numero di stanze } }
__________________
AMD ATHLON XP 2200+, 512Mb DDR PC3200, HDD 160Gb ATA133 8Mb BUFFER, SK VIDEO ATi Radeon 9000 64Mb DDR VIVO, MAST. DVD Dual-Layers!!!! WIN XP SP2 - Linux, Router Trust 445A |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:28.