Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] - Sfarfallio con CLS...

    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...



  2. #2
    Potresti riscrivere solo la riga che utilizzi :
    codice:
    printf("Numero : %d     \r", var);
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Codice PHP:

    void LogOut
    (void)
    {

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

    Come dovre modificare secondo te?

  4. #4
    EDIT : (@moderator : Remove me please... )
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  5. #5
    In queste due righe c'è qualcosa che non mi torna ...
    codice:
    ...
    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 :
    codice:
    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.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  6. #6
    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

    Grazie ancora

  7. #7
    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

    Grazie ancora
    Ciao.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.