Originariamente inviato da netarrow
ecco un codice che riassume il tutto, stampa una stringa carattere per carattere aspettando 1 secondo:

codice:
#include <ctime> //nuovo time.h
#include <iostream> // nuovo I/O
#include <string>// nuovo string.h che contiene la classe string

using namespace std;
// specifica che verrà usato il namespace detto std(standar)

void aspetta(long m)// m = secondi da aspettare 
{ 
time_t adesso = time(NULL); //prendi l'ora di adesso
while(difftime(time(NULL), adesso) < m);
//se non sono passati "m" secondi da "adesso", ripeti il while

return;//sono passati quindi esce(return opzionale)
}

int main() {
	string str("Testo di prova");//oggetto stringa
	for(register int i = 0; i < str.size(); i++) {
		cout << str[i];
//[] è sovraccaricato quindi non è necessario usare substr
		aspetta(1);//aspetta 1 secondo(molto circa)
	}
	cout << endl;
//quando la stringa è stata stampata tutta vai a capo.

	return 0;//terminato con successo
}
l'ho pure commentato(oggi nevicherà a trieste ), per dubbi chiedi.

Ma... è semplicemente FANTASTICO!!!!! Davvero, non mi aspettavo così tante linee di codice, sei veramente grande!!!!
E adesso posso anche spiegarti perché stavo chiedendo in giro queste cosette di C++: praticamente, è da qualche tempo che sto cercando di realizzare assieme ad un mio amico una specie di avventura grafica vecchio stile (hai presente quei titoli giocabili per il DOS, in cui si impartiva nient'altro che semplici comandi per effettuare le varie azioni del personaggio protagonista... ecco, la questione delle sottostringhe era saltata fuori quando mi è toccato di creare una funzione per il salvataggio del gioco, nel senso che una volta che l'utente impartiva al programma il comando necessario per poter salvare, avrebbe dovuto scegliere da sé il nome della partita da salvare (a condizione, però, che l'estensione del file contenente il salvataggio la decidessi io... e se l'utente decidesse di inserire una sua estensione per il file?).
Potrò spiegarti meglio tramite queste righe di codice:

codice:
#include <fstream.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>

int main()
{
char scelta[10], nome[20];
do {
   cout<<"1). Salva partita\n";
   cout<<"2). Esci\n";
   gets(scelta);
   switch(scelta) {
      case 1: cout<<"Con quale nome vuoi salvare il file?\n";
                    gets(nome);
                    for (int i=0; i<strlen(nome);i++) {
                    if (nome[i]=='.') /* controlla se nel nome scelto è presente un punto per l'estensione */
                    {
                    cout<<"Il file da salvare presenta un'estensione diversa da quella predefinita. Continuare? (S/N)\n";
                    cin>>risp;
                    if (risp=='s')
                    salva(nome); // il parametro passa alla funzione
                    else
                    break;
                    }
                    else {
                    strcat(nome,".cst"); /* concatena la stringa priva di estensione all'estensione predefinita */
                    salva(nome);
                    } // chiude la condizione principale
                    } // chiude il ciclo for
                    } // chiude lo switch
   } while (scelta != 2) // chiude il do-while
return 0; // il programma termina
} // chiude il main
Ecco, il mio scopo consisteva nell'estrarre gli ultimi quattro o cinque caratteri del nome scelto da tastiera, nel caso in cui l'utente decidesse di utilizzare una sua estensione, e poi di utilizzare un nuovo cout, proprio per informarlo che l'estensione da lui scelta era diversa da quella del programmatore... so che è un'idea un po' incasinata la mia, comunque spero di averti spiegato nel modo migliore possibile...

Ciao e a presto!