Visualizzazione dei risultati da 1 a 4 su 4

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non puoi aprire il file sia in append che in lettura.

    Aprilo prima in lettura, fuori dal ciclo, e nel ciclo fai la ricerca leggendo dal primo all'ultimo libro.

    Se non l'hai trovato, alla fine del ciclo, apri il file in append e lo aggiungi, altrimenti visualizza un messaggio d'errore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  2. #2
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Non puoi aprire il file sia in append che in lettura.

    Aprilo prima in lettura, fuori dal ciclo, e nel ciclo fai la ricerca leggendo dal primo all'ultimo libro.

    Se non l'hai trovato, alla fine del ciclo, apri il file in append e lo aggiungi, altrimenti visualizza un messaggio d'errore.
    Ciao, ho fatto come mi hai detto, però il mio problema non sembra risolto.
    Ho aperto il programma, inserito un libro dal titolo(lun) e dall'autore (nov) e mi dava già errore dicendo che era già presente questo libro, cosa non vera essendo il primo inserito e il file era vuoto.
    Dopo ho riaperto ho inserito il secondo libro dal titolo "mart" e questo è quello che è successo:
    Cattura.JPG

    ti riporto il codice modificato, non so davvero più che fare, ho provato a fare modifiche però niente, scusami il disturbo



    codice:
    int nuovo ()
    {
    	libro l;
    	ifstream leggi;
    	leggi.open("a.txt");
    	
    	leggi>>l.titolo;
    	leggi>>l.autore;
    	
    	for(int i=0; i<3; i++)
    	{
    	
    	string nuovo="";
    	cout<<"\nInserire Titolo, per verificare se presente:";
    	cin>>nuovo;
    	
    	while(!leggi.eof())
    	{
    		
    		leggi>>l.titolo;
    		leggi>>l.autore;
    		
    		if(nuovo!=l.titolo)
    		{
    			ofstream salva;
    			salva.open("a.txt",ios::app);
    			
    			l.titolo=nuovo;
    			cout<<"\nAutore:";
    			cin>>l.autore;
    			cout<<"\n------------------------\n";
    			
    			salva<<l.titolo<<endl;
    			salva<<l.autore<<endl;
    			
    			salva.close();
    		}
    		else
    		{
    			cout<<"\nERRORE! FILE GIA' PRESENTE!!\n";
    			return 0;
    		}
    	}
    	}
    	leggi.close();
    }

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non ci siamo capiti ... il codice che hai scritto non è come ti ho suggerito ... Schematicamente

    Chiedi il nuovo titolo
    Imposta un flag a falso (libro non trovato)
    Apri il file in lettura
    Leggi il prossimo record (fino a eof)
    Se il titolo letto è uguale al nuovo imposta flag a vero
    Chiudi il file in lettura al termine del ciclo
    Se il flag è vero, visualizza "libro già presente" e termina
    ... altrimenti apri il file in append, scrivi i nuovi dati, chiudi il file.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.