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