PDA

View Full Version : URGENTISSIMO!!


Maurizioale
27-05-2004, 13:57
Per favore qualcuno mi aiuti a risolvere questo problema in c++, mi serve al più presto possibile.Grazie.

QUESTA E' LA CLASSE FILE.H :

#include<fstream.h>
#include<iostream.h>

class fil
{

public:

void scrivi(char nome_file[30],struct oggi *puntatore)
{
fstream logico;
logico.open(nome_file,ios::out|ios::binary);
logico.write((char *) & *puntatore,sizeof *puntatore);
logico.close();
}
void leggi(char nome_file[30],struct oggi *puntatore)
{
fstream logico;
logico.open(nome_file,ios::in|ios::binary);
logico.clear();
logico.read((char *) & *puntatore,sizeof *puntatore);
logico.close();
}

};

fil file;


QUESTO E' IL PROGRAMMINO:

#include<iostream.h>
#include<fstream.h>
#include<file.h>

struct oggi
{
char ci[10];
int goal;
int peso;
};




void main()
{
int ris;
struct oggi prova;
cout<<"leggere(1) o scrivere(0)? ";
cin>>ris;
if(ris==0)
{
cout<<"goal: ";
cin>>prova.goal;
file.scrivi("uffa.txt",&prova);
}
if(ris==1)
{
file.leggi("uffa.txt",&prova);
cout<<"goal: "<<prova.goal<<endl;;
}

}

IL PROGRAMMA MI DA I SEGUENTI ERRORI:

c:\programmi\microsoft visual studio\vc98\include\file.h(13) : error C2027: use of undefined type 'oggi'
c:\programmi\microsoft visual studio\vc98\include\file.h(9) : see declaration of 'oggi'
c:\programmi\microsoft visual studio\vc98\include\file.h(21) : error C2027: use of undefined type 'oggi'
c:\programmi\microsoft visual studio\vc98\include\file.h(9) : see declaration of 'oggi'
Error executing cl.exe.

leomagic
27-05-2004, 14:26
non devi scrivere nel main
struct oggi prova;

ma solo

oggi prova;

Maurizioale
27-05-2004, 15:01
la situazione è rimasta la stessa!!ma dove sara l'errore???

fpucci
27-05-2004, 15:33
La dichiarazione di 'struct oggi' la devi spostare nel file.h e non nel sorgente .c dove di trova il main

cionci
27-05-2004, 15:33
#include "file.h"

Maurizioale
27-05-2004, 16:05
Ragazzi non funziona!La struttura appartiene al programma.
Deve funzionare con la struttura nel prog. e non nel .h.
Adesso io non so se questo sia possibile pero' il mio obbiettivo era quello.Sicuro che non cè un'altro modo?

fpucci
27-05-2004, 20:26
Originariamente inviato da Maurizioale
Ragazzi non funziona!La struttura appartiene al programma.
Deve funzionare con la struttura nel prog. e non nel .h.
Adesso io non so se questo sia possibile pero' il mio obbiettivo era quello.Sicuro che non cè un'altro modo?

Ma non ti funzionerà mai in quel modo se non fai sapere al tuo file.h dove si trova dichiarata la struttura 'oggi'

Un'alternativa, che io non opterei, sarebbe quella di mettere la definizione della struttura in un header file pippo.h e poi aggiungerei l'istruzione #include "pippo.h" sia in file.h che nel file dove si trova il main