2008-09-11 14 views
2

Linux ve Windows altında yazılan ve konsoldaki çıktıları gösteren küçük bir rutine sahibim. Hiçbir şekilde küfür ya da bunun gibi bir şeyle bağlantı kurmuyorum. Ekran noktasını Windows ve Linux konsolunda ekranın üstüne sıfırla

Şu anda Sonra durumunu güncellemek için printf ifadeleri bir grup var

#ifdef __WIN32 
    system("cls"); 
#else 
    system("clear"); 
#endif 

kullanarak ekranı temizlemek. Ben sadece screenpointer'ımı sıfırlamak istiyorum. Özellikle 2 farklı işletim sistemi için kodlama yaptığım için daha fazla uzantıda derlemekten kaçınmayı tercih ederim. Ben yapmanın bir windows belirli bir yol bulmuş olabilir gibi

cevap

0

Görünüşe SetConsoleCursorPosition

Ansi çıkış sırası \ 033 [0; Linux için 0H - sadece konsola o Printf.

+1

Linux için ansi çıkışı garanti edilmez, küçük bir olasılıkla farklı bir terminal tipi kullanılır. Bu özelliği Termcap veya Terminfo içinde doğrulamak isteyebilirsiniz. –

1

Unix benzeri platformlar için, bunu yapmanın normal yolu curses kitaplığını kullanıyor.

0

Evet, unix platformları için küfürler (veya bu günlerde) gitmek için bir yoldur. Ve pencereler altında çalışan sürümler vardır, bu yüzden her iki sistemde de aynı şekilde yapabilirsiniz.

0

Pencereler için - ANSI çıkış karakterlerini kullanabilirsiniz. http://www.robvanderwoude.com/ansi.html

printf "\x[0;0H" 

http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm

O ANSI.SYS bunu edemeden yüklenecek gerektiğini eskiden, ama denemeye değer.

ANSI desteği ekleme yönergeleri http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.html Not: Ansi.sys yalnızca command.com altında çalışır. Cmd.exe ile kullanamazsınız.

İlgili konular