C++ output testo

di il
4 risposte

C++ output testo

Salve a tutti, sto imparando il c++, uso un windows 7 con code::blocks. Sto creando qualche programma e qualche gioco molto semplice, pero volevo anche cominciare a preoccuparmi dell'estetica del programma una volta lanciato.
Ad esempio in: cout<<"frase"; la frase appare tutta in un unico momento e io vorrei fare un qualcosa di piu carino, magari facendo comparire lettera per lettera (come se il computer stesse ''scrivendo'' il messaggio per l'utente). All'inizio avevo pensato di aggiungere un comando _sleep() dopo ogni lettera ma il lavoro sarebbe stato enorme (oltre che poco professionale ).
La mia domanda quindi è: esiste un modo per non far apparire tutto il testo in una volta sola, ma magari farlo apparire lettera per lettera?
Cosa proponete? conoscete qualche soluzione?
Aspetto con ansia la vostra risposta!

4 Risposte

  • Re: C++ output testo

    La cosa più semplice che mi viene in mente è:
    
    #include <iostream>
    #include <string>
    
    void print_slow(std::ostream& out, const std::string& s, int millis) {
    	std::string::size_type sz = s.length();
    	for (std::string::size_type i = 0; i < sz; i++) {
    		out << s[i];
    		Sleep((DWORD)millis);
    	}
    }
    
    int main (etc) {
    		print_slow(cout,"ciao Gabbro\n",100);
    		print_slow(cout,"sono il tuo PC\n",100);
    		print_slow(cout,"piacere di conoscerti\n",100);
    		print_slow(cout,"ma adesso\n",100);
    		print_slow(cout,"STUDIA!!!!!!\n",100);
    }
    
    Altre soluzioni più flessibili sono anche più complesse.
    (Oh, è il PC che parla )
  • Re: C++ output testo

    Grazie Shodan! non sapevo che esistesse una funzione del genere e per quanto cercassi su google non ero proprio riuscito a farmi capire dal motore di ricerca... Ora proverò ad usare il metodo che mi hai indicato e mi informerò meglio sull'uso del print_slow facendo qualche ricerca. Grazie mille!
    EDIT:
    sembra che non sia cosi facile trovare questa funzione sul web non è che per caso hai un link dove viene spiegato come si usa? mi scoccia fare copia e incolla senza capire! (Ad esempio non capisco quando scrivi ''std::ostream& out, const std::string& s'' magari sono ancora troppo agli inizi e sono cose che studierò piu avanti)
  • Re: C++ output testo

    Ciao Gabbro,

    shodan ha scritto:


    print_slow(cout,"STUDIA!!!!!!\n",100);
    È sempre un buon consiglio!

    In C++ puoi crearti le funzioni che ti servono. La funzione 'print_slow' non esiste su google, è stata inventata da shodan.
  • Re: C++ output testo

    Ahaha evidentemente sono VERAMENTE ancora troppo indietro! Non avrei mai pensato che avrei potuto creare una funzione del genere! Poi vabbe, il mio problema era anche che non capivo i termini scritti nella funzione, ma suppongo che siano termini standard e ci arriverò studiando, grazie dell'aiuto, non vi deludero! xD
Devi accedere o registrarti per scrivere nel forum
4 risposte