System ("CLS") i pętla.

0

Cześć, mam problem, napisałem o to taki krótki program:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    for (;;)
        {
            cout << "test" << endl;
            system("CLS");
        }
    return 0;
}

Wynikiem jego jest:

Dałoby radę zrobić tak by wynik, czyli "test" tak nie skakał a był jakby płynny? Użycie Sleep (500) nie wchodzi w grę, ponieważ i tak między "odświeżeniem" występuje widoczny przeskok.

Pozdrawiam :)

0

Nie korzystaj z CLS, tylko czegoś dedykowanego do operacji typowo konsolowych, jak np.ncurses.
Ew.po prostu nie odświeżaj za każdym razem całego ekranu, a skorzystaj z czegoś pokroju GotoXY.

0

Nie wiem czy o to ci chodzi:

#include <iostream>
using namespace std;
 
int main()
  {
   for(int i=0;i<1000000;++i) cout<<'\r'<<"test: "<<i;
   return 0;
  }
0

Tak da radę zrobić ,żeby nie migało wystarczy ,że zapamiętasz zrzut ekranu w stringu i będziesz go kopiował na ekran nastepnie przesuniesz kursor na początek konsoli itd dzięki czemu żadna zawartość ekranu nie będzie kasowana tylko najzwyczajniej nadpisywana dzięki temu uzyskasz płyną aniamcję

0
Patryk27 napisał(a):

Nie korzystaj z CLS, tylko czegoś dedykowanego do operacji typowo konsolowych, jak np.ncurses.
Ew.po prostu nie odświeżaj za każdym razem całego ekranu, a skorzystaj z czegoś pokroju GotoXY.

Mógłbyś mi powiedzieć dokładniej czym jest ów "ncurses" i z czym to się je? :)
To z tym gotoXY to całkiem dobre rozwiązanie, ale nie idealne w ostateczności je wykorzystam, dzięki. :)

_13th_Dragon napisał(a):

Nie wiem czy o to ci chodzi:

#include <iostream>
using namespace std;
 
int main()
  {
   for(int i=0;i<1000000;++i) cout<<'\r'<<"test: "<<i;
   return 0;
  }

Zdecydowanie jest lepiej, ale nadal są widoczne przeskoki. :(

robcio napisał(a):

Tak da radę zrobić ,żeby nie migało wystarczy ,że zapamiętasz zrzut ekranu w stringu i będziesz go kopiował na ekran nastepnie przesuniesz kursor na początek konsoli itd dzięki czemu żadna zawartość ekranu nie będzie kasowana tylko najzwyczajniej nadpisywana dzięki temu uzyskasz płyną aniamcję

Próbowałem coś znaleźć o tej metodzie na google, ale nic nie znalazłem. :(

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