Effacement à l'aide du caractère de contrôle de retour arrière
Je suis en train d'utiliser la touche retour arrière de caractères de contrôle '\b'
pour effacer des virgules à la fin de la ligne. Bien qu'elle fonctionne dans les cas où il n'y a pas d'autre sortie à stdout
dans le cas où si il y a une autre sortie après '\b'
elle devient inutile. Voici un exemple:
#include <iostream>
using namespace std;
int main()
{
int a[] = { 1, 3, 4, 5, 6, 32, 321, 9};
for ( int i = 0; i < 8; i++) {
cout << a[i] << "," ;
}
cout << "\b" ;
//cout << endl;
return 0;
}
Dans le bloc ci-dessus de code, si la ligne est commentée comme on le voit, on obtient le résultat désiré avec pas de virgule après le chiffre 9. Cependant, si la ligne sans commentaire, la virgule s'affiche de nouveau.
Dans mon programme, je ne veux pas la virgule, mais veulent une finale au bout de 9. Comment puis-je faire cela ?
source d'informationauteur hytriutucx
Vous devez vous connecter pour publier un commentaire.
La manière habituelle d'effacer le dernier caractère de la console est d'utiliser la séquence
"\b \b"
. Cela déplace le curseur d'un espace, puis écrit un espace pour effacer le caractère, et la correction arrière à nouveau de sorte que de nouvelles écritures commencent à l'ancienne position. Notez que\b
par lui-même ne se déplace le curseur.Bien sûr, vous pouvez toujours éviter la sortie de la virgule en premier lieu:
Ou, si vous êtes friands de C+11 hacks:
ouais \b se déplace seulement la malédiction donc à la fin de la ligne, il se déplace de nouveau à la fin de la ligne. donc, pour réellement effacer la dernière partie ont un espace après \b réellement effacer la dernière virgule. exemple: cout<<"\b ";