Comment faire pour restaurer les lignes de cout?

Je suis codage d'une tâche de surveillance, les mises à jour des tâches de progrès à l'aide de cout. J'aimerais afficher une progression de la tâche par ligne, j'ai donc à la restauration de plusieurs lignes de la console.

J'insiste sur "plusieurs" parce que \b fait le travail pour une ligne, mais n'efface pas \n entre les lignes.

J'ai essayé std::cout.seekp(std::cout.tellp() - str.length()); mais tellp() retourne -1 (échec).

Vous ne pouvez pas. cout ne représente pas la console. Il représente un flux de sortie. Cela signifie que vous pouvez écrire, mais vous ne pouvez pas faire quelque chose à propos de ce qui a déjà été écrit. cout est pour l'impression de sortie quel que soit le périphérique de sortie de la plate-forme utilise (par exemple, mais pas nécessairement, une fenêtre de console). Si vous avez besoin de manipuler la console en particulier, vous devez utiliser un système d'exploitation spécifique de la bibliothèque qui sait à propos de la fenêtre de la console.
Pourquoi avez-vous même voulez effacer de la liste des tâches terminées? Il suffit d'imprimer une progression de la tâche élément par ligne, et il va jouer encore mieux si quelqu'un exécute votre programme et tuyaux stdout dans un fichier journal.
Je sais, mais il y aura UN grand nombre de lignes, je ne veux pas noyer l'utilisateur dans le cadre d'infos, juste lui donner un statut, et le pourcentage d'avancement de chaque tâche que je suis en cours d'exécution.

OriginalL'auteur Mister Mystère | 2010-07-18