Chiudere un file prima del tempo

di il
8 risposte

Chiudere un file prima del tempo

Salve a tutti

int massimo,ncolonne; massimo=0;ncolonne=1;z=0;t=0;indy=0;
       	ifstream winput(sorgente, ios::in);
        winput.get(carattere);
        while (!input.eof())
             {
              switch (carattere)
                    {
                case '$': { t=1; break; }
                case ';':
                    {
                     ncolonne++;
                     if (z>massimo) { massimo=z; }
                     z=0; break;
                    }
                case '\n'; { indy=1; break; }
                default: { z++; break; }
                    }
                if (indy == 0) { winput.get(carattere); }
                else // comando per uscire dalla While!
             }
 
cosa debbo mettere nella else per poter interrompere il ciclo while?
se metto direttamente la chiusura del file giustamente dovrebbe andarmi in errore!
qualche idea?
ringrazio tutti coloro che mi aiuteranno

8 Risposte

  • Re: Chiudere un file prima del tempo

    Scusate ho trovato un errore nella postazione del codice
    le variabili z,t ed indy sono int definite in un altra parte del programma
    carattere naturalmente e char
    int massimo,ncolonne; massimo=0;ncolonne=1;z=0;t=0;indy=0;
           	ifstream winput(sorgente, ios::in);
            winput.get(carattere);
            while (!winput.eof())
                 {
                  switch (carattere)
                        {
                    case '$': { t=1; break; }
                    case ';':
                        {
                         ncolonne++;
                         if (z>massimo) { massimo=z; }
                         z=0; break;
                        }
                    case '\n'; { indy=1; break; }
                    default: { z++; break; }
                        }
                    if (indy == 0) { winput.get(carattere); }
                    else // comando per uscire dalla While!
                 }
    
  • Re: Chiudere un file prima del tempo

    Aggiungi una variabile booleana nel controllo del ciclo while

    while (!winput.eof() && exc)

    all'inizio posta a true.

    Quando vuoi uscire, settala a false.
  • Re: Chiudere un file prima del tempo

    Grazie
  • Re: Chiudere un file prima del tempo

    A volte mi perdo in un bicchiere d'acqua!
  • Re: Chiudere un file prima del tempo

    Non bastava else break; ?
  • Re: Chiudere un file prima del tempo

    No perchè la break esce dallo switch mentre bisognava uscire dalla while
    comunque la soluzione di oregon funziona perfettamente
  • Re: Chiudere un file prima del tempo

    Cosa c'entra lo switch, che ne eri già fuori dal codice che hai postato? Comunque contento tu contenti tutti
  • Re: Chiudere un file prima del tempo

    Si hai ragine andava bene anche una break.
    però ho preferito usare la soluzione di oregon perchè io uso la break solo con le istruzioni switch è una break libera mi avrebbe causato confusione nel correggere eventuali errori.
Devi accedere o registrarti per scrivere nel forum
8 risposte