2008-09-11 3 views
2

C 및 Windows에서 실행되는 약간의 루틴이 콘솔에 출력됩니다. 나는 저주 같은 어떤 형태로든 연결하지 않을 것입니다. Windows & Linux 콘솔에서 화면 맨 위를 가리키는 화면

은 현재 내가 그럼 난 상태를 업데이트하는 printf와 문장의 무리가

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

을 사용하여 화면을 취소합니다. 내가 screenfointer를 0,0으로 재설정하기 만하면, printfs를 오버레이 할 수 있습니다. 나는 차라리 더 이상 확장 기능을 사용하지 않기를 바란다. 특히 2 개의 다른 OS를 코딩하고 있기 때문이다. 내가하는 일의 윈도우를 특정 방법을 발견 할 수 있습니다처럼

답변

0

이 보이는 것이 SetConsoleCursorPosition

ANSI 이스케이프 시퀀스 \ 033 [0; 리눅스에 대한 0H - 단지 콘솔에 그 printf와.

+1

Linux에서는 ansi 이스케이프가 보장되지 않을 가능성이 있지만, 다른 터미널 유형이 사용됩니다. Termcap 또는 Terminfo 내에서 기능을 확인할 수 있습니다. –

1

유닉스 계열 플랫폼의 경우 보통 curses 라이브러리를 사용합니다.

0

유닉스 플랫폼의 경우 curses (또는 ncurses, 요즘)가 필요합니다. 그리고 창 아래에서 작동하는 버전이 있으므로 두 시스템에서 같은 방식으로 할 수 있습니다.

0

Windows의 경우 - ANSI 이스케이프 문자를 사용할 수 있습니다. http://www.robvanderwoude.com/ansi.html

printf "\x[0;0H" 

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

그것은 ANSI.SYS이이 작업을 수행하기 전에로드 할 필요가 있다고로 사용하지만, 그것은 시도해볼 가치가 있어요.

ANSI 지원 추가 지침 http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.html 참고 : Ansi.sys는 command.com에서만 작동합니다. cmd.exe와 함께 사용할 수 없습니다.

관련 문제