Wpis z mikrobloga

Mirki-programiści, pytanie do was. Podany niżej przykład (zamysł) programu jest tylko obrazem problemu, jego rozwiązanie jest potrzebne mi do nieco większego projektu.
Otóż, mamy program w #cpp który wyświetla liczby od 1 do 99 jedna pod drugą - zatem w jednej kolumnie. Chcę rozdzielić te liczby na trzy kolumny obok siebie (pierwsza: liczby 1-33, druga: 34-66, trzecia: 67-99). Powtarzam, ten program to tylko TŁO do rozwiązania problemu z brakiem możliwości powrotu "w górę".
Jak to zrobić, jak sprawić by odbył się powrót na samą górę konsoli?
#naukaprogramowania #programowanie #programista15k
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak to zrobić, jak sprawić by odbył się powrót na samą górę konsoli?


@tagtak: w sensie w celu dopisania kolejnej kolumny? Tego się tak nie robi

no ale jak już bardzo chcesz, to od p-----------a kursorem po terminalu (i nie tylko) masz ANSI kody
  • Odpowiedz
@tagtak: no bo \r wraca ci na początek linii, w której jesteś

Przeczytaj sobie ten artykuł na wiki, albo jak ci się nie chce, to wpisz

std::cout << "\033[0;0H";
To ci wróci na górę, ale obecnej pozycji (czyli nie uwzględniając tego, że możesz mieć coś wyżej zeskrolowane). Możliwe, że jest kod, który ci wróci na górę uwzględniając scroll, ale wtedy się musisz wysilić i jednak przeczytać ten artykuł, który ci
  • Odpowiedz
@tagtak: zatem twój terminal nie obsługuje powszechnego standardu, wnioskuję więc, że twoim największym błędem jest używanie Windowsa do programowania w C++. Możesz to rozwiązać w następujący sposób (od najlepszego do najgorszego):

1. kupić maca
2. zainstalować se linuksa
3. postawić wirtualkę z linuksem
4. zabić się
5. użyć jakiegoś terminala na windowsie, który wspiera ANSI kody
  • Odpowiedz
@tagtak: np. wtyczka czy coś tam ANSICON do cmd.exe albo ten nowy windows terminal, którym microsofty się podniecają, że zrobili to, co na linuksie było 100 lat temu
  • Odpowiedz
@tagtak: Tego się tak nie robi. Po prostu generujesz sobie linie, np. 1 10 20 i ja wypisujesz, potem 2 11 21 i ja wypisujesz i tak dalej. Zabawy z lataniem kursorem są średnie, bo zależą od tego, jakiego terminala używasz.
  • Odpowiedz
@secret_passenger: fajnie że mnie wołasz ale to nie ja jestem OPem. A problem jest trochę bardziej skomplikowany - jak po fakcie narysowania czegoś na konsoli dodać coś w arbitralnym miejscu na ekranie powyżej aktualnej pozycji kursora bez uszkadzania istniejącej zawartości.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@keton22: sorry, faktycznie pomyłka.

a co do rysowania - nie, problem nie jest skomplikowany i można go rozwiązać dokładnie tak jak opisałem wyżej. to jest tylko jednokrotne wypisanie listy tyle że w 3 kolumnach...
co innego gdyby należało w ten sposób zrobić coś w rodzaju wyświetlania czasu, czy też procentowego progresu postępu jakiegoś zadania.

@tagtak spójrz na mój powyższy komentarz
  • Odpowiedz