Leggere una frase da file

di il
1 risposte

Leggere una frase da file

Sto provando a leggere da file un insieme di dati, in particolare ho un file .dat con il seguente contenuto :
1            //int
cazzabubbolo  //string
12                //int
123.56        //float
nota1        //string
2
nullino
12
123.56
nota2
questo è il main
int main() {
	oggetto x[100];
	int id;
	string nome;
	int quanti;
	float costo;
	string nota;
	fstream f;
	f.open("file.dat",ios::in);
	int i=0;
	while(!f.eof()){
		f>>id;
		f>>nome;
		f>>quanti;
		f>>costo;
		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 0;
}
fin qui tt ok, ma se nel file cambio i campi corrispondenti alle string con due parole invece di una il programma termina.
quindi se modifico il file.dat così:
1
cazzabubbolo elettrico //<--------------------------
12
123.56
nota1
2
nullino
12
123.56
nota2
ho l'errore, probabilmente è causato dal fatto che la parola "elettrico" finisce nell'int di sotto, ma come posso ovviare a questa situazione?
ossia come leggo intere frasi da file e le inserisco in una string?

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte