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

    [C++]Su DEV funziona su Borland NO

    Salve a tutti c'è una cosa che non capisco un programma compilato con dev funziona con Borland c++ 6 no(cioè me lo compila ma mi cre un ciclo infito)
    Vi mostro la parte del codice che crea problemi.

    Legge da uno stream finche non si trova alla fine dello stream, o non legge il carattere 0 o 1,
    fin qui funziona il problema è il secondo while che esegue il ciclo fin quanto non trova nella mappa di frequenza la stringa cercata e stampa la chiave e il valore, poi ricomincia a leggere.

    codice:
     
     while(!lettura.eof()&&(ch=='1'||ch=='0')){
    			while(freqMap.find(x1)==freqMap.end()){
    				lettura.get(ch);
    				x1+=ch;
    			}
    			scrittura<<x1<<" "<<freqMap[x1];
    			lettura.get(ch);
    			x1=ch;
    		}

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [C++]Su DEV funziona su Borland NO

    Originariamente inviato da zeno3083
    codice:
     
    			while(freqMap.find(x1)==freqMap.end()){
    				lettura.get(ch);
    				x1+=ch;
    			}
    Questo while non ha senso. Map::find() ritorna o l'elemento cercato o map::end() se non lo trova, ma lo fa al primo colpo visto che ha un while all'interno.

    Il modo corretto è:
    codice:
    			if (freqMap.find(x1) != freqMap.end()){
    				lettura.get(ch);
    				x1+=ch;
    			}

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 © 2024 vBulletin Solutions, Inc. All rights reserved.