C++ Linuks Przewijanie danych wypisanych w konsoli

0

Witam.
Jak przewijać linijki w konsoli w górę i w dół jeśli sporo danych jest wypisywanych? Przykładowo mamy do wypisania 100 linijek, a w konsoli załóżmy mieści się 50 linijek, więc widzimy na koniec wypisywania danych 50 ostatnich linijek, a nie widać 50 pierwszych. Jak przewinąć wypisane dane do pierwszej linijki? Jest jakiś sposób?
Można wprawdzie wypisywać dane po jednej linijce, i przesuwać iterator, ale chciałbym się dowiedzieć czy da się to inaczej zrobić.

0

Chodzi o przewijanie outputu programu czy treści jakiegoś pliku? I rozumiem, że przewijanie "klasyczne", tj. tym paskiem do przewijania nie wchodzi w grę, tak?

0

Tak. Chodzi o przewijanie outputu programu. Paska przewijania akurat brak u mnie, ale wolałbym przewijać strzałkami. Na przykład po jednej linijce w górę/w dół.

0

To musisz jakiś widok zaimplementować na te dane jeśli koniecznie mają to być strzałki (bo nie jest to standardowe zachowanie Linuxowej konsoli), i wtedy elegancko za pomocą biblioteki ncurses sobie to wyświetlisz, lub jeśli twój program wypluwa 100 linii tekstu i kończy działanie, to przy uruchamianiu go po prostu przekieruj dane potokiem do more, tak się robi zazwyczaj (./main | more) wtedy przewijasz enterem w przód.

5

less > more, imo ;)

0

Shift + PageUp

0

@Biały Kaczor zakłądając, że to nie sytuacja w której bufor terminala ma 50 linii.

0

W najgorszym przypadku można zrobić komenda | tee log; less log ;)

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