PDA

Visualizza la versione completa : [C] Sfarfallio nell'uso di CLS


Vincent
15-02-2007, 20:24
Salve a tutti!

ho una funzione che ogni x secondi stampa un messaggio con un numero diverso, ma noto che nelle varie iterazioni l'output subisce uno sfarfallio ( credo normale ) dovuto alle varie system("CLS"); utilizzate nel ciclo.

Vorrei sapere se esiste un modo per ridurre o evitare questo sfarfallio antiestetico...


:ciauz:

Samuele_70
15-02-2007, 20:29
Potresti riscrivere solo la riga che utilizzi :


printf("Numero : %d \r", var);

Vincent
15-02-2007, 20:32
void LogOut(void)
{

int i,j;

for(i=0; i<50; i++)
{
system("CLS");
printf("\n\n Wait Please...\n\n Saving Data: ", i+1 );
printf(" %-3d%% ", i+1 );
for(j=0; j<i; j=j+4)
printf("%c", 178 );
wait( 0.02 );
}

for(i=49; i<99; i++)
{
system("CLS");
printf("\n\n Wait Please...\n\n Log-Out : ", i+1 );
printf(" %-3d%% ", i+1 );
for(j=0; j<i; j=j+4)
printf("%c", 178 );
wait( 0.02 );
}
system("CLS");
printf("\n\n Log-Out: Completato ");
printf("\n\n\n AVVISO: Salvataggio dati personali effettuato con successo\n\n ");

wait( 3 );

}



Come dovre modificare secondo te?

Samuele_70
15-02-2007, 20:46
EDIT : (@moderator : Remove me please... )

Samuele_70
15-02-2007, 20:48
In queste due righe c' qualcosa che non mi torna ... :D


...
printf("\n\n Wait Please...\n\n Saving Data: ", i+1 );
...
printf("\n\n Wait Please...\n\n Log-Out : ", i+1 );
...


Potrebbe diventare tipo questo :


void LogOut(void)
{
int i,j;
printf("\n\n\n");
for(i=0; i<50; i++)
{
printf("\rWait Please... Saving Data: %-3d%% ", i+1 );
for(j=0; j<i; j=j+4)
printf("%c", 178 );
wait( 0.02 );
}
printf("\n\n\n");
for(i=49; i<99; i++)
{
printf("\rWait Please... Log-Out : %-3d%% ", i+1 );
for(j=0; j<i; j=j+4)
printf("%c", 178 );
wait( 0.02 );
}
system("CLS");
printf("\n\n Log-Out: Completato ");
printf("\n\n\n AVVISO: Salvataggio dati personali effettuato con successo\n\n ");

wait( 3 );
}

La cosa importante non andare mai alla riga successiva.

Vincent
15-02-2007, 21:03
Grazie per la pillola...

in effetti quello \r funziona come una specie di refresh...(!?)

per quelle righe sbagliate il solito copia-incolla che nuoce gravemente alla salute dei programmatori :biifu:

Grazie ancora :ciauz:

Samuele_70
15-02-2007, 21:17
Originariamente inviato da Vincent
Grazie per la pillola...

in effetti quello \r funziona come una specie di refresh...(!?)

Il carattere '\r' corrisponde al ritorno del 'carrello' a sinistra nella stessa riga.
a differenza del '\n' che invece si sposta anche alla riga successiva.


per quelle righe sbagliate il solito copia-incolla che nuoce gravemente alla salute dei programmatori :biifu:

Grazie ancora :ciauz:

Ciao.

Loading