Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] controllo non funzionante...

    codice:
    ritardoultimo2 = intToString(ritardoultimo);
        
    if (ritardoultimo2 == "9") {
        
    string stringariassuntiva = combinazione:"+testo+"***"+ra: "+ritardoultimo2;
    
    terzineconritardi.push_back(stringariassuntiva);
         
         }
    Vorrei semplicemente... che mi venisse salvato in terzineconritardi solo le combinazioni aventi come ritardoultimo2 il valore 9

    Ma così non avviene...



    Grazie a chi mi toglie d'impaccio illuminandomi sulla fagianata in atto...


  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Immagino che ritardoultimo2 sia un oggetto di tipo string, giusto?

    Se è così, stai applicando l'operatore a == ad una string e ad un char*... Sinceramente è tanto che non uso C++ e quindi non sono sicuro, ma non mi pare che ci sia l'overload di == per questi due tipi.

    Dovresti usare il metodo compare della classe string:

    codice:
    if (ritardoultimo2.compare("9") == 0) { ... }
    http://www.cplusplus.com/reference/s...tring/compare/
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Grazie infinite ippo343

    Era proprio li' l'errore!

    Adesso un'ultima cosa se puoi delucidarmi anche in questa...

    Avrei bisogno di effettuare delle scelte automatiche in modo multiplo...

    per adesso con queste "stringhe" dovrei aggiumgerne una alla volta tramie l'OR (||):

    come in questo caso:

    codice:
    if (colpirimanenti2.compare("0") == 0 || ritardoultimo2.compare("257") == 0) {
    ma vedrei molto più pratico se fosse possibile effettuare ad esempio per ritardoultimo2 una conversione a numero intero in modo che possa mettere nell'espressione condizionale di verifica qualcosa del tipo if ritardoultimo2>257 && ritardoultimo2 <277 allora... fai questo... altrimenti desisti...

    C'e' un modo pratico e veloce per ottenere questa espressione condizionale "plurima" che abbia in se sia confronto di stringhe che di numeri?

    Grazie 1000 comunque!


  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Il problema vero, se non ho capito male, non è il confronto ma convertire dei valori string in interi ...

    E mi sembra che in altre domande che hai posto in precedenza, ti era stato suggerito di usare la classe

    stringstream

    Fai una ricerca tra i tuoi stessi quesiti precedenti ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    nuovo problema anche se il primo non l'ho ancora risolto...

    Lo posto qui perchè trattasi dello stesso codice..

    codice:
    if (colpirimanenti2.compare("0") == 0) {
        
        string stringariassuntiva = testo;
        
        
        terzineconritardi.push_back(stringariassuntiva);
         }
         
         else {
         
             
         string stringariassuntiva = "";
        
        
        terzineconritardi.push_back(stringariassuntiva);
         }
         }
    In sostanza questo se la condizione è soddisfatta mi scrive sul file il dato altrimenti mi scrive sul file una riga vuota.. (che vorrei evitare...)

    invece di ottenere in output qualcosa di questo tipo :

    1,10



    10,7


    10,12

    ecc...

    vorrei ottenere qualcosa di questo tipo:

    1,10
    10,7
    10,12

    cioè senza spazi...

    In verità il top sarebbe ottenere tutto in sequenza intervallato da virgola senza doppioni...
    (secondo l'es: 1,10,7,12...)
    ma per adesso mi basterebbe anche ottenere le righe volute senza righe vuote tra l'una e l'altra...

    Grazie


  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468

    Re: nuovo problema anche se il primo non l'ho ancora risolto...

    Non è molto chiaro ...

    Comunque, penso che tu debba eliminare completamente la parte else quindi

    codice:
    if (colpirimanenti2.compare("0") == 0) 
    {
        string stringariassuntiva = testo;
        terzineconritardi.push_back(stringariassuntiva);
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Re: Re: nuovo problema anche se il primo non l'ho ancora risolto...

    Originariamente inviato da oregon
    Non è molto chiaro ...

    Comunque, penso che tu debba eliminare completamente la parte else quindi

    codice:
    if (colpirimanenti2.compare("0") == 0) 
    {
        string stringariassuntiva = testo;
        terzineconritardi.push_back(stringariassuntiva);
    }
    già provato ma così facendo non funzia il controllo...




  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    E' impossibile risponderti senza sapere come scrivi sul file.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++]questo il pezzo interessato...

    Originariamente inviato da oregon
    E' impossibile risponderti senza sapere come scrivi sul file.
    codice:
    string rapportorars2;
        string contaestrazioni2;
        string colpirimanenti2;
        string ritardomassimo2;
        string ritardoultimo2;
        string presenze2;
        
        
        colpirimanenti2 = intToString(colpirimanenti);
        ritardomassimo2 = intToString(ritardomassimo);
        ritardoultimo2 = intToString(ritardoultimo);
    
        contaestrazioni2 = intToString(contaestrazioni);
        presenze2 = intToString(presenze);
    
        
       //salva nella stringa e quindi nel file solo se corrisponde a certi requisiti...
       
       if (colpirimanenti2.compare("0") == 0) {
        
        string stringariassuntiva = testo;
        
        
        terzineconritardi.push_back(stringariassuntiva);
         }
         
         else {
         
             
         string stringariassuntiva = "";
        
        
        terzineconritardi.push_back(stringariassuntiva);
         }
         }
    
     
    
    //segnale sonoro dopo l'analisi di ogni ambo...
    printf("\a");
    //---------------------------------------------
    
    
    
        //prova salvataggio NUMERO PRESENZE x ESTRATTO (E) con relativi parametri su file...
        
        cout << "salvataggio nel primo file txt-";
        //cin.get();
    
        ofstream fout;
    	
    	fout.open("prova-output-4.txt", ios::app);
    
    	
    	//DATO ULTIMO DELLA TERZINA ANALIZZATA...
    	string datoultimoterzina= terzineconritardi[terzineconritardi.size()-1];
    	fout << datoultimoterzina;
    	fout << "\n";

    tnx


  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Non so perché possano esserci delle stringhe vuote tra quelle che scrivi (non sai che fatica seguire il tuo codice ... ) ma, a questo punto, controlla che la lunghezza della stringa sia maggiore di zero per eseguire queste righe

    codice:
    if(....)
    {
        fout << datoultimoterzina;
        fout << "\n";
    }
    e nel file ci finiranno solamente le stringhe che vuoi tu.
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.