Chciałbym dowiedzieć się jak napisać program, który wykorzystywałby działanie pętli w ten sposób, że wszystkie nowe wypisania tekstu dla każdego kolejnego obiegu zastępowałyby stary tekst z poprzedniego obiegu i występowały niejako w jego miejscu w terminalu po wywołaniu programu.
for(int i=0;i<1000000;++i) printf("\r%d",i);
Chyba trochę niezrozumiale wyraziłem swoje myśli. Łatwiej będzie mi powiedzieć to na konkretnym przykładzie. Chodzi mi o to, że jeśli mam program:
#include <stdio.h>
#include <windows.h>
int main(){
printf("1 4\n2 5\n3 6");
Sleep(1500);
printf("\n\n9 6\n8 5\n7 4");
return 0;
}
to wyświetlą się dane:
1 4
2 5
3 6
9 6
8 5
7 4
A chciałbym żeby najpierw wyświetliły się pierwsze dwie kolumny (z wartościami od 1 do 6) a potem, po upływie 1,5 sekundy dwie kolejne kolumny (z wartościami od 9 do 4), które byłyby wydrukowane w miejsce tych pierwszych, nie pod nimi.
Nie da się tego zrobić używając standardowego wejścia/wyjścia. Trzeba używać funkcji specyficznych dla konsoli.
Jeśli to windows:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073%28v=vs.85%29.aspx
a konkretniej to: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686025%28v=vs.85%29.aspx
Jeśli dowolny system operacyjny to biblioteka ncurses
- biblioteka
ncurses
- słabo kompatybilne
conio.h
z gcc igotoxy()
- niekompatybilne WinAPI http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073%28v=vs.85%29.aspx lub odpowiednik pod odpowiedni system
- degeneratywne i niekompatybilne
system("cls");