Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Aiuto sull'utilizzo di struct con lettura da file


  • Effettua l'accesso per rispondere
Nessuna risposta in questa discussione

#1
brody09

brody09

    Advanced Member

  • Utente
  • StellaStellaStella
  • 258 Messaggi:
Ciao a tutti,

sto svolgendo un semplice esercizio che effettua la lettura da file di 2 numeri, di cui quello che sta sulla prima colonna rappresenta la base e quello sulla seconda rappresenta l esponente.
Dopo aver letto da file, devo effettuare il calcolo della potenza..
Sto utilizzando anche le struct..
La lettura e stampa a video mi funziona, però il risultato che ritorna la funzione potenza è sempre 1. Qualcuno gentilmente mi sa dire dove sbaglio?
Sotto posto le immagini..:

**** Funzione.h : *****

struct Numeri
{
int b;
int e;
};
typedef Numeri DatiNum[MAX];

void leggistruct(istream &,Numeri &);
void leggidafile(istream &,DatiNum,int &);
void scrivistruct(ostream &, const Numeri &);
void stampastruct(const DatiNum, const int );
int potenza(const Numeri & );


**** Funzione.cpp : *******

void leggistruct(istream & in, Numeri & N)
{
in >> N.b >> N.e;
}


void leggidafile(istream & in, DatiNum D, int & n)
{
in >> n;
for(int i=0;i<n;i++)
{
leggistruct(in,D[i]);
}
}


void scrivistruct(ostream & out, const Numeri & N)
{
out << N.b <<' '<< N.e;
}


void stampastruct(const DatiNum D, const int n )
{
for(int i=0;i<n;i++)
{
scrivistruct(cout, D[i]) ;
cout << endl;
}
}


int potenza(const Numeri & N)
{
int p=1;
int i;
for(i=1;i<=N.e;i++)
p=p*N.b;
return p;
}

******* MAIN : ******


int main () {

Numeri N;
DatiNum D;
int dim,ris;
char filename[MAX];
fstream myfile;
cout<<"Inserire il nome del file: ";
cin.getline(filename,MAX);
myfile.open(filename,ios::in);

if(!myfile) cout<<"Errore in apertura";
else
{
leggidafile(myfile,D,dim);
cout<<"Stampa: "<<endl;
stampastruct(D,dim);

ris = potenza(N);
cout <<"risultato: " << ris;
}
myfile.close();
return 0;
}


Dove sbaglio? :( Grazie mille a chi mi risponde :)






Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi