Ok questa è andata !
ora procedendo nella costruzione del programma mi è venuto in mente (giustamente) di inserire tutto questo passaggio in una funzione che mi restituisca un puntatore al primo oggetto dell'array di oggetti x[100]
ma sto combinando dei pasticci con i puntatori
passo i tre file così ci capiamo meglio:
header
/*
* head.h
*
* Created on: 20/giu/2013
* Author: olivi_000
*/
#ifndef HEAD_H_
#define HEAD_H_
#include <iostream>
#include <string>
using namespace std;
class oggetto{
public:
void setName(const string &n){this->nome=n;};
void setId(int i){this->id=i;};
void setQuanti(int q){this->quanti=q;};
void setCosto(float c){this->costo=c;};
void setNota(const string &no){this->nota=no;};
string getName(){return nome;}
int getId(){return id;}
int getQuanti(){return quanti;}
float getCosto(){return costo;}
string getNota(){return nota;}
void print();
private:
int id;
string nome;
int quanti;
float costo;
string nota;
};
oggetto loading();//carica il file .dat
#endif /* HEAD_H_ */
file delle funzioni:
/*
* fun.cpp
*
* Created on: 20/giu/2013
* Author: olivi_000
*/
#include <iostream>
using namespace std;
#include "head.h"
#include <fstream>
#include <string>
void oggetto::print(){
cout<<"ID: "<<id<<endl;
cout<<"NOME: "<<nome<<endl;
cout<<"QUANTITA': "<<quanti<<endl;
cout<<"COSTO: "<<id<<endl;
cout<<"NOTA: "<<nota<<endl;
}
oggetto loading() {
//lettura file .dat
oggetto x[100];
int id;
string nome;
string dummy;
int quanti;
float costo;
string nota;
fstream f;
f.open("file.dat",ios::in);
int i=0;
while(!f.eof()){
f>>id;
getline(f, dummy);
getline(f, nome);
f>>quanti;
f>>costo;
getline(f, dummy);
getline(f, nota);
x[i].setId(id);
x[i].setName(nome);
x[i].setQuanti(quanti);
x[i].setCosto(costo);
x[i].setNota(nota);
i++;
}
for (int j=0;j<i;j++){
x[j].print();
cout<<"|----------|"<<endl;
}
f.close();
return x[0];
}
questo è il main
//============================================================================
// Name : Labcode.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
#include "head.h"
#include <fstream>
#include <string>
int main() {
oggetto lista;
lista=loading();
return 0;
}
in questo modo la funzione loading mi restituisce soltanto il primo oggetto, e a me non va bene una cosa simile, perchè poi dopo non potrei gestirmi il resto