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

    [c++] Applicazione per il prompt (console): emulare una barra di caricamento?

    ragazzi mi chiedevo se c'era un modo per emulare una barra di caricamento nel prompt di dos mentre si sta caricando un operazione o una cosa del genere...

    avevo pensato che sarebbe carino poter fare in stile linux cioè che comparissero continuativamente ( nella stessa posizione del carattere ) le tre barrette:

    \
    |
    /


    conoscete dei metodi per farlo?

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Basta visualizzare i caratteri a ripetizione seguiti da un backspace ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Basta visualizzare i caratteri a ripetizione seguiti da un backspace ...


  4. #4
    Se ti interessa un esempio in C... link
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Originariamente inviato da MItaly
    Se ti interessa un esempio in C... link

    stupendo..

    sapevo che comunque l'avrei potuto cercare già fatto su google ma ho scritto qui per avere anche qualche parere..

    comunque se utilizzo il tuo codice casomai lo riscrivo in c++ (non posso utilizzare il c) e lo posto qui



  6. #6
    Puoi facilmente riscriverlo in C++ trasformando la struttura in una classe e includendo la funzione tuttofare come metodo; magari sistemalo un po', prevedendo la possibilità di collegarci stream differenti.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Originariamente inviato da MItaly
    Puoi facilmente riscriverlo in C++ trasformando la struttura in una classe e includendo la funzione tuttofare come metodo; magari sistemalo un po', prevedendo la possibilità di collegarci stream differenti.
    si avevo pensato a quello...

    il fatto è che devo fare un progettino abbastanza banale e una barra di caricamento verrebbe caricata troppo velocemente ( neanche un secondo.... )

    quindi se proprio la voglio mettere giusto per... la devo mettere fake con uno sleep(x) ogni tanto xD

  8. #8
    Ragazzi ho preferito usare il primo metodo...
    se vi serve la classe eccola:

    praticamente ad ogni passo basta chiamare il metodo step(); per visualizzare il carattere successivo contenuto nel vector l; fino a quando non viene chiamato il metodo end();

    in questo caso visualizzerà la sequenza
    \
    |
    /

    codice:
    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    
    class Loading{
    public:
    	inline Loading(){l.push_back('\\');l.push_back('|');l.push_back('/'); i=0;init="Caricamento... ";done="completato.";}
    	inline ~Loading(){}
    	inline void step() {if (i>0) cout << '\b'; else cout <<init; cout << l[i%l.size()];i++;}
    	inline void end(){cout << '\b' << done;}
    private:
    	vector<char> l;
    	int i;
    	string init;
    	string done;
    };
    
    
    int main() {
    
    	Loading *bar = new Loading();
    	while(1) {
    		bar->step();
    		//> Operazioni da svolgere...
    	}
    	bar->end();
    	
    	cout << endl;
    	return 0;
    }

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.