Funzione per leggere due file diversi C++

di il
8 risposte

Funzione per leggere due file diversi C++

Ciao a tutti,
vorrei chiedervi un aiuto riguardo la scrittura di una funzione.

(Tratto da un tema d'esame) Ho due files: nuclei.dat e elettroni.dat . Il primo è composto da quintuple di dati, che tratto con una struct, e il secondo da terne di dati.

Per leggerli entrambi ho dovuto dichiarare due diversi ifstream.

(Riporto uno spezzone di codice che mostra la mia situazione)

struct atomo{
	float x;
	float y;
	int charge;
	float r;
	int n_elec;
};

struct elec{
	float x;
	float y;
	bool is_free;
};
int main(){
	
	ifstream in_atomi;
	ifstream in_elec;
        ofstream out;

        in_atomi.open("nuclei.dat");
        out.open("risultati.dat");

	int k= linecount_atomi(in_atomi);
	atomo *A=new atomo[k];
//carico il vettore di atomi con i dati

	for(int i=0; i<k; i++){
		in_atomi>>A[i].x>>A[i].y>>A[i].charge>>A[i].r>>A[i].n_elec;

	}
	
//carico il vettore elettroni
	in_elec.open("elettroni.dat");
	int e=linecount_elec(in_elec);
	elec *E=new elec[e];

	for(int i=0; i<e; i++){
		in_elec>>E[i].x>>E[i].y>>E[i].is_free;
	}
	return 0;
}
int linecount_atomi(ifstream &in_atomi){
	string s;
	int k=0;
	getline(in_atomi, s);
	while(!in_atomi.eof()){
		k++;
		getline(in_atomi, s);
	}
	return k;
}

int linecount_elec(ifstream &in_elec){
	string s;
	int e=0;
	getline(in_elec, s);
	while(!in_elec.eof()){
		e++;
		getline(in_elec, s);
	}
	return e;
}

Ora la mia domanda è: come potrei scrivere una funzione con cui decido quale file aprire dei due e leggerlo?

8 Risposte

Devi accedere o registrarti per scrivere nel forum
8 risposte