Buongiorno ragazzi, il programma nel momento in cui aggiungo un materiale in più, che sia una credenza o un letto, entra in loop quando vado a selezionare l'opzione di visualizzi, non riesco a capire in che parte di codice ci può essere l'errore! Grazie in anticipo a chiunque mi aiuti!

codice:
#include<iostream>
#include<fstream>
#include<stdio.h>


using namespace std;


int inserisci();
void vediEricerca ();
int ricerca();
void vediCred ();
void vediLetto ();




class arredo
{
	public:
		string nome="";
		string materiali="";
		string colore="";
		int prezzo;
		
};


class credenza: public arredo
{
	public:
		int ripiani;
		int cassetti;
		int sconto()
		{
			int nuovoPrezzo;
			nuovoPrezzo=prezzo*0.2;
			int sconto;
			sconto=prezzo-nuovoPrezzo;
			if(cassetti!=0)
			{
				cout<<"Il prezzo scontato del 20% e':"<<sconto<<endl;
				return sconto;
			}
		}
};


class letto: public arredo
{
	public:
		string tipo="";
};




int main()
{
	int scelta;
	do
	{
		system("CLS");
		cout<<"1.Inserire";
		cout<<"\n2.Visualizza e Ricerca";
		cout<<"\n3.Esci";
		
		cout<<"\nOperazione da eseguire:";
		cin>>scelta;
		
		switch(scelta)
		{
			case 1:
				inserisci();
				break;
			case 2:
				vediEricerca ();
				break;
		} system("PAUSE");
		
	} while(scelta!=3);
	cout<<"\n Grazie per aver utlizzato il programma! \n";
	return 0;
}




int inserisci()
{
	ofstream salva;
	salva.open("arredo.txt",ios::app);
	
	int scelta;
	cout<<"1.per inserire Credenza";
	cout<<"\n2.per inserire Letto";
	cout<<"\nOperazione da eseguire:";
	cin>>scelta;
	
	switch(scelta)
	{
		case 1:
			{
		ofstream salva;
		salva.open("arredo.txt",ios::app);
	
		credenza c;
		c.nome="Credenza";
		cout<<"\nNome Mobile:"<<c.nome<<endl;
		cout<<"\nMateriale:";
		cin>>c.materiali;
		cout<<"\nColore:";
		cin>>c.colore;
		cout<<"\nPrezzo rivenditore:";
		cin>>c.prezzo;
		cout<<"\nCassetti:";
		cin>>c.cassetti;
		c.sconto();
		cout<<"\nRipiani:";
		cin>>c.ripiani;
		
		salva<<c.nome<<endl;
		salva<<c.materiali<<endl;
		salva<<c.colore<<endl;
		salva<<c.prezzo<<endl;
		salva<<c.cassetti<<endl;
		salva<<c.ripiani<<endl;
		salva<<c.sconto()<<endl;
		
		salva.close();
	}
			break;
		
		case 2:
			{
		ofstream salva;
		salva.open("arredo2.txt",ios::app);
	
		letto l;
		l.nome="Letto";
		cout<<"\nNome Mobile:"<<l.nome<<endl;
		cout<<"\nMateriale:";
		cin>>l.materiali;
		cout<<"\nColore:";
		cin>>l.colore;
		cout<<"\nPrezzo rivenditore:";
		cin>>l.prezzo;
		cout<<"\nTipo:";
		cin>>l.tipo;
		
		salva<<l.nome<<endl;
		salva<<l.materiali<<endl;
		salva<<l.colore<<endl;
		salva<<l.prezzo<<endl;
		salva<<l.tipo<<endl;
		
		salva.close();
	}
			break;
			
	}system("PAUSE");
}








void vediEricerca ()
{
		ifstream leggi;
	leggi.open("arredo.txt");
	


	
	while(!leggi.eof())
	{
		credenza c;
		leggi>>c.nome;
		leggi>>c.materiali;
		leggi>>c.colore;
		leggi>>c.prezzo;
		leggi>>c.cassetti;
		leggi>>c.ripiani;
		
	
		cout<<"Nome:"<<c.nome<<endl;
		cout<<"Materiale:"<<c.materiali<<endl;
		cout<<"Colore:"<<c.colore<<endl;
		cout<<"Prezzo:"<<c.prezzo<<endl;
		cout<<"Prezzo rivenditore:"<<c.prezzo<<endl;
		cout<<"Cassetti:"<<c.cassetti<<endl;
		cout<<"Ripiani:"<<c.ripiani<<endl;
		c.sconto();
		cout<<"\n---------------------------------------\n";
		
	
		
	}
	leggi.close();
	
	ifstream legg;
	legg.open("arredo2.txt");	
	while(!legg.eof())
	{


			letto l;
			legg>>l.nome;	
			legg>>l.materiali;
			legg>>l.colore;
			legg>>l.prezzo;
			legg>>l.tipo;
			
		
			cout<<"Nome:"<<l.nome<<endl;
			cout<<"Materiale:"<<l.materiali<<endl;
			cout<<"Colore:"<<l.colore<<endl;
			cout<<"Prezzo:"<<l.prezzo<<endl;
			cout<<"Tipo:"<<l.tipo<<endl;
			cout<<"\n---------------------------------------\n";
			
	
	}			
	legg.close();
	
}