|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 12
|
[C++] IF all'interno di un For
Ciao a tutti, scusate ma il mio problema e' leggermente complesso e non sapevo come intitolarlo.
Allora, prima di tutto si tratta di un input/output da file su altro file. Cioe' prendo il mio input file composto di vari campi corrispondenti alle variabili dichiarate, lo leggo dalla prima all'ultima riga, faccio alcune operazioni su alcune delle variabili e scrivo sull'output file il risultato. Fin qui nulla di strano, se non fosse che su alcune di queste righe non devo fare le mie operazioni ma copiare il tutto invariato. Ovviamente leggo dalla prima all'ultima riga all'interno di un for (ho provato anche col while), e devo dire al programma che se ad un certo punto la variabile x assume quel dato valore (il che accade tre volte, sparse) deve copiare e basta. IL PROBLEMA e' che, mettendo questo tipo di if all'interno del for, la prima volta che la variabile x assume quel dato valore accade che l'if si verifica, e il programma non mi esegue piu' le operazioni precedenti per tutte le altre righe, bensi' me le copia invariate. Ho provato anche con lo switch - case senza break, ma non funziona lo stesso e non capisco perche'! Qualche suggerimento alternativo? grazie... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Potresti postare il codice?
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 12
|
Ok. Te lo semplifico per chiarezza (altrimenti per intero e' un po' lungo e complesso), lasciando invariato il nodo del problema. In questo caso, il programma effettua le operazioni per var1, var2 e var3 per le righe da 1 a 49, ma poi copia la riga 50 del file di input non solo sulla riga 50 del file di output ma anche su tutte le altre righe del file di output da 51 a 100 (perche' si verifica la condizione dell'if, appunto, e quindi smette di fare quello che gli indicherei col for).
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 12
|
Ops scusate, si poteva postare nei tag code anziche' allegare come txt, non ci avevo fatto caso!
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Quote:
Comunque ho provato e a parte un errorino (i non dichiarata) sembra funzionare bene, quando arriva alla 50 riga esegue il comando diverso, poi alla 51esima ritorna ad eseguire il comando con le varie +1 +2 +3... Esempio: Se nell input.txt metto un 1 ogni riga, il risultato sarà: 234 234 234 ...ecc ecc fino a riga 50 111 234 234 234 234 ...e cosi avanti Ultima modifica di ||ElChE||88 : 06-03-2008 alle 21:00. |
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 12
|
No vabbe', errori non ce n'erano, ti ho semplificato l'oggetto quindi ho dimenticato qualche pezzo qua e la'
comunque sono senza parole... la versione semplificata funziona, ho provato anch'io ora... ma mi sembra strano perche' il concetto di base e' quello! questo significa quindi (perdonami l'ignoranza ma sono i miei primi tentativi!!!) che anche all'interno di un for, dopo un if che si verifica una volta, si riprendono ad esaminare le condizioni? se ha funzionato deve essere cosi'... boh... vedo cosa puo' avere di strano il mio gigantesco input file grazie |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Certo, ogni volta che un if viene "eseguito" controlla le condizioni...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:59.




















