Pausa dell'OUTPUT

di il
1 risposte

Pausa dell'OUTPUT

Ciao a tutti,
sto scrivendo un programma in c++ per la gestione di un display lcd a con 2 righe da 16 caratteri.
In particolare sto adesso realizzando la procedura per lo scorrimento su una singola riga del testo con lunghezza superiore a 16 caratteri.

L'idea è abbastanza semplice: lo scorrimento della stringa "ciao" l'ottengo aggiungendo uno spazio alla fine ("ciao ") quindi stampando:
"ciao "
"iao c"
"ao ci"
"o cia"
" ciao"
per x volte .
Quindi tra la stampa di una stringa e l'altra devo lasciare un intervallo magari 500 ms che mi consente di leggere il testo che scorre.

Ho provato diverse soluzioni, tra le quali sleep() e diverse funzioni che mi sono scritto basate su time().
Il problema che si verifica è che se deve stampare 5 stringhe ogni 500 ms in realtà mi stampa solo l'ultima stringa dopo 5*500 ms.
E' come se in realtà l'output venisse bufferizzato.
Per la stampa dell'output sul dispositivo utilizzo la classica:
ofstream out(file)
out << str; dove str è un array di caratteri.

Non avendo ancora una grande esperienza con il c/c++, qualcuno di voi sa dirmi dove sta il trucco?
Grazie

Giovanni Gasparri

1 Risposte

  • Re: Pausa dell'OUTPUT

    Ciao, basandomi sulla mia esperienza di programmazione in c, un problema simile l'ho avuto stampando una serie di caratteri consecutivi che non avevano il "\n" (cioè il ritorno a capo).
    Il problema si risolve facendo un aggiornamento dell'output, ovvero mettendo una fflush(stdout) dopo aver stampato la stringa.

    Spero di esserti stato d'aiuto..
Devi accedere o registrarti per scrivere nel forum
1 risposte