Jak zablokować przesunięcie lini w konsoli?

0

Witam serdecznie,
Od dłuższego czasu nie mogę obejść problemu z przesunięciem lini.
a mianowicie :


  • XP 0/10 Poziom 1 ****

teraz gdy XP osiągnie wartość pow 9 to linia się rozjezdza.


  • XP 10/10 Poziom 1 ****

Póki co znalazłem dwa mało wygodne sposoby jak earase(), czy zastępowane linni inna gdy XP >9 itd. Czy istnieje coś innego?
Pozdrawiam

0

Możesz (...powinieneś?) potraktować konsolę jak plik - jeśli w kodzie napiszesz, że do pliku masz zapisać N spacji a poten gwiazdkę, to tak będzie, prawda? Rozwiązaniem więc jest policzyć "szerokość" liczby w znakach i bazując na tym odjąć odpowiednią liczbę spacji z tej "linii".
Możesz też potraktować konsolę jak interaktywną konsolę - na końcu linii, ale przed finalnym *, ciepnąć tyle ile potrzeba '\b'. Pierwszy wybór wydaje mi się jednak sporo lepszy. ;)

4

Może spróbuj std::setw() z <iomanip>.

0

Ok lookne. Próbowałem również z "\t" i działa ale na dość rozbite wyrazy.

1

@carlosmay dobrze ci pisze.
Jakbyś pokazał kod, który generuje te napisy, to dostałbyś konkretniejszy przykład jak to zrobić, a tak sam kombinuj.

0

@carlosmay genialne!!! Właśnie tego potrzebowałem. Super dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1