Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C ++ ] Errore nel visualizzare più elementi del programma!

    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();
    	
    }

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    vai a scrivere nel file 7 rughe poi ne vai a leggere solo 6 tutto in un ciclo secondo me questo fa in modo che salti l'eof e il ciclo while continua a dritto

    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


    leggi>>c.nome;
    leggi
    >>c.materiali;
    leggi
    >>c.colore;
    leggi
    >>c.prezzo;
    leggi
    >>c.cassetti;
    leggi
    >>c.ripiani;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.