2010-04-15 5 views

Répondre

3

aucune bibliothèque. Vous imprimez simplement sur la console System.out.print (pas println!), Puis envoyez les caractères de retour arrière pour effacer la ligne.

System.out("Progress 5"); 
System.out("\b\b\b\b\b\b\b\b\b\b"); 
System.out("Progress 10"); 

Je n'ai pas fait cela depuis un moment, mais cela devrait le faire.

+5

+1 Je l'ai fait quelque chose comme ça l'autre jour quand je batifolais avec Mono/C# sur le Mac, sauf que j'ai utilisé un seul '\ r 'pour revenir directement au début de la ligne en un seul saut. –

5

Vous pouvez imprimer un "retour chariot", également appelé '\r' pour réinitialiser le "curseur" au début de la ligne.

System.out.printf("Progress: %3d %% \r", percentComplete); 

Maintenant, chaque fois que vous imprimez la ligne, vous sont renvoyés au début de sorte que le prochain pour cent écrase le précédent.

0

Vous pouvez effacer la console pour des coups de pied ... oh et ne pas oublier string.format a le soutien de pourcentage ...

using System; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var perc = 0.0; 
      while(perc <= 1.0) 
      { 

      Threading.Thread.Sleep(50); //simulate doing some work 

      //EDIT: 
      //Console.Clear(); 
      Console.Write(String.Format("{0:P}\r", perc)); //as per suggestion 

      perc += 0.01; 
      } 
      Console.WriteLine("Press any key to exit"); 
      var exit = Console.ReadKey(); 
     } 

    } 

}

+2

La bonne chose à propos de la surimpression d'une ligne au lieu d'effacer tout l'écran est que (a) vous ne perdez pas le reste du contenu de l'écran et (b) il ne scintille pas lorsqu'il est redessiné. ..) –

+0

Bon point, j'ai appris quelque chose aujourd'hui :) –

Questions connexes