본문 바로가기

코드^학습/메모한 지식

여러분 혹시 system함수 system("cls")를 알고 계십니까?

대부분의 C언어를 공부하는 사람들은 결과를 검은창...

즉, 도스창에 띄우게 됩니다.


초반에 배울때는 도스창의 크기에 별로 구애받지 않지만

1년 2년 지나가면 도스창을 아무리 늘려도 힘들기만 합니다.


만약 메뉴에서 선택하고 출력하는 문장을 while(1)등으로 반복한다고 하면

메뉴를 계속 화면에 뿌려줘야 할것이고...

그렇다면 메뉴선택 텍스트 출력 -> 선택 -> 작업실행 -> 메뉴선택 텍스트 출력이 될겁니다.


그러면 나의 도스화면은 이전의 했던 결과가 다 남으면서

보기가 나빠질 것이고

정말 여러번 수행하다보면 이게 결과인지 메뉴인지 헷갈리기 시작합니다.


그래서 깔끔하게 정리할 수 있는 함수가 바로


system("cls");   !!!!!


이 함수는 어떻게 사용하느냐?


이 함수는 windows.h에 정의되어 있습니다.

이 헤더파일에 무슨 함수가 있는지 자세히는 모르지만 시스템에 관련된 함수가 많아서

사용하기가 편리합니다.


#include <windows.h>

void main()

{

while(1)

{

system("cls");

...

...

...

}

} 


이렇게 해두고 (대부분 반복문 안에 넣어둡니다.)  사용하면 작업을 실행하고 나서 깔끔하게 정리가 되는 모습을 볼 수 있습니다.


system("cls"); 를 만나기 전까지 출력한것을 모두 지워버리니까 메뉴텍스트 출력 바로 위에 해주시면 좋겠죠?


==============================================================================================

저의 링크에도 있는 다람다람 다람군이 친절히 조언을 해줬습니다.

댓글에도 나와있지만 본글에도 첨부할게요.


하지만 멀티플랫폼에 초점을 맞춰서 개발하려면 저런 함수는 사용하지 않는게 좋아요
윈도에서는 cls지만 리눅스나 유닉스 bash에서는 clear잖아요?

물론 둘다 system이라는 함수를 지원해주긴 하지만요


아셨죠?

저걸 사용할때는 윈도우에 한하는 플랫폼개발(그런 범용적이지 않은!!)에 사용하거나

윈도 콘솔창에서 급히 지워야할 필요가 있을때 사용하세요~