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

    [c++] Perchè il cin.get() finale non viene sentito?

    Ho questo mio codice che genera comb. costituite da tre elementi che dovrebbe mostrare a video tutte quelle generate e fermarsi all'ultima.. invece a mano di non andare passo passo... lo schermo mi si chiude senza darmi l apossibilità di vedere l'intero sviluppo delle combinazioni.

    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    #include <algorithm>
    #include <sstream>
    #include <iomanip>
    
    
    using namespace std;
    
    string intToString(int value) {
        stringstream ss;
        ss << value;
        return ss.str();
    }
    
    string floatToString(float value) {
        stringstream ss;
        ss << value;
        return ss.str();
    }
    
    
    int main (int argc, char *argv[]) {
    
    vector<string> vec;
    
    int contaterzina=0;
    
    int contatore=0;
    int conteggio=0;
    int presenze=0;
    int presenze3=0;
    
    int contaestrazioni=0;
    
    int conteggio2=0;
    
    
    vector<int> ritardi;
    vector<int> ritardi2;
    
    vector<string> terzineconritardi;
    vector<string> terzineconritardi2;
    
    
    int contacolpibuoni=0;
    
    int va,vb,vc,vd,ve,vf,vg,vh,vi,vj;
    
    
    int conta=0;
    
    //QUI LA DECINA DI PARTENZA E':
    //a=2,b=5,c=8,d=11,e=14,f=17,g=20,h=23,i=26,j=29
    
    //quindi chiedendo in input va basterà mettere in espressione a=va-1...
    //proviamo...
    
    cout << "va?";
    cin >> va;
    cout << "vb?";
    cin >> vb;  
    cout << "vc?";
    cin >> vc;  
    
    
    /* analogamente ...
    
    
    
    
    
    */
    
    
    
    for (int a=va-1; a<va+2; a++) {
        for (int b=vb-1; b<vb+2; b++) {
            for (int c=vc-1; c<vc+2; c++) {
               
                                            
                                            
                                            cout << a;
                                            cout << ",";
                                            cout << b;
                                            cout << ",";
                                            cout << c;
                                          
                                            cout << "\n";
    
                  //cin.get();  ////QUESTO CIN.GET() se "attivato" viene sentito... 
    
       
    conta++;
    
        
        }
        }
        }
    
    
    
    cout << "\n\n\n";
    cout << "In tutto sono state generate: ";
    cout << conta;
    cout << " combinazioni!"; 
    
    cin.get(); //QUESTO CIN.GET() non viene sentito... a meno che anche l'altro cin.get() non sia attivato e si proceda passo passo...
    
    
    
    }
    tnx


  2. #2
    Stai mescolando input formattato (cin>>) e non formattato (cin.get()), che gestiscono il buffer di lettura in maniera differente. Una soluzione (che però non funziona su tutte le piattaforme) è piazzare prima di un input non formattato un cin.sync().
    Amaro C++, il gusto pieno dell'undefined behavior.

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

    Infinitamente...

    GRAZIE!!!


  4. #4
    Prego, di niente. Ciao!
    Amaro C++, il gusto pieno dell'undefined behavior.

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.