11
votes

Annuler une nouvelle ligne (\ n) imprimée à la ligne de commande

Error 1

Status: 50%

1 commentaires

Pas une solution, mais une solution de contournement / indice si vous ne trouverez rien d'autre: utilisez une bibliothèque telle que des ncurses ou des PDCurs.


3 Réponses :


3
votes

Désolé, vous ne pouvez pas.

Mais vous pouvez émettre des appels système pour effacer à la place de l'écran entier, comme le système ("CLEAR") (dépendant du système d'exploitation).

ou utilisez ncurses tout comme KOS mentionné dans le commentaire.


0 commentaires

2
votes

Vous pouvez utiliser des escapes répèces ANSI pour déplacer votre "curseur" une ligne UP: xxx

ou le régler à une position spécifique: xxx P> Je n'ai pas essayé pour C ++, mais l'a utilisé avec succès pour un jeu simple dans ANSI-C!


3 commentaires

Je suppose que certains terminaux ne le soutiennent pas? Comme Windows ...


Yup, il y a une liste de ces par ex. ici , mais ils ne fonctionnent que pour les terminaux compatibles VT100 (donc ne le feraient pas travailler sous Windows comme dit Ryan).


Windows dispose de supports pour ceux-ci lorsque ANSI.SYS est en cours d'exécution, mais il va toujours faire un désordre si la sortie est redirigée.



7
votes

Qu'est-ce que @Ryan a dit.

explication Pourquoi: stdout est un flux abstrait qui ne doit pas nécessairement être le terminal. Il peut s'agir d'un fichier, d'un tuyau, d'une prise, d'une imprimante, d'un texte à l'appareil vocal ou autre. Dans de nombreux cas, il n'a aucun sens à ce que vous avez demandé de faire. Vous avez donc besoin d'une bibliothèque qui fonctionne avec le terminal spécifiquement.


0 commentaires