Question

J'écris un outil de ligne de commande pour Mac OS X qui traite un tas de fichiers. Je voudrais montrer à l'utilisateur du fichier en cours de traitement, mais ne veulent pas de fichiers bazillion polluants de la fenêtre de terminal.

Au lieu de cela, je voudrais utiliser une seule ligne à la sortie du chemin du fichier, puis réutiliser cette ligne pour le fichier suivant. Y at-il un caractère (ou un autre code) à la sortie de std::cout pour y parvenir?

En outre, si je voulais re-cibler cet outil pour Windows, la solution serait la même pour les deux plates-formes?

Était-ce utile?

La solution

"\ r" devrait fonctionner pour Windows et Mac OS X.

Quelque chose comme:

std::cout << "will not see this\rwill see this" << std::flush;
std::cout << std::endl; // all done

Autres conseils

Je n'ai pas accès à un Mac, mais d'un point de vue pur de la console, cela va dépendre en grande partie de la façon dont il traite le retour chariot et caractères saut de ligne. Si vous pouvez littéralement envoyer un ou l'autre à la console, vous voulez envoyer juste un retour chariot.

Je suis assez sûr Mac traite à la fois des retours chariot et ligne-feeds différemment * nix et fenêtres.

Si vous êtes à la recherche (par exemple Ecraser la ligne courante) pour les mises à jour en place, je vous recommande de regarder le curses lib. Cela devrait fournir une plate-forme de moyens indépendants à faire ce que vous cherchez. (Parce que, même en utilisant C ++ norme, il n'y a pas la plate-forme moyen indépendant de ce que vous demandez).

std :: Cout interpretes "\ r" comme retour au début de la ligne, si vous ne whant à ajouter "<< endl" à chaque fois, utilisez "\ n"

std::cout << "this will work!\nSee... a new line!" << std::endl;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top