본포스팅은 C언어와 C++에서 콘솔화면 초기화 하는 예제를 소개하고 설명합니다. 콘솔 화면에 써진 것들을 모두 지우는 기능을 합니다. 


 콘솔화면을 지워야 하는 경우  windows.h 에 있는 system 함수를 사용하면 됩니다. system("cls")로 호출하면 콘솔화면이 지워지게 됩니다.


 int system(const char *cmd); 해당 함수에 원형입니다. cmd에 적은 명령을 수행하도록 하는 함수 입니다. 윈도우 키를 입력하고 cmd를 입력하여 콘솔창을 실행해서 cls를 입력하면 화면이 지워지는 것을 볼 수 있습니다. 따라서 해동함 수는 윈도우 콘솔에서 제공하는 명령들을 실행합니다.


 C언어와 C++ 모두에서 사용 가능하다. 콘솔에 코드를 작성하다보면 요긴하게 사용 할일이 많이 있다. 예를들어 해당 기능으로 간단한 게임등을 구현 가능합니다. 화면을 계속 지우고 그리면서 애니메이션 처럼 캐릭터가 움직이거나 특정 모양의 객체가 움직이는 것등을 포현할 수 있습니다. 물론 콘솔이라는 환경적 제약 때문에 조잡해 보일순 있지만 공부한 프로그래밍 언어를 가지고 간단한 게임을 구현하면서 더욱 흥미를 높일 수 있습니다. 예를들어 테트리스나 벽돌깨기등의 게임을 제작해보는 것도 방법입니다.


 간단한 사용예제입니다. 처음에 화면에 지우기 1초전 이라는 구문을 출력하고 1초간 딜레이를 줍니다. 그리고 System("cls")로 콘솔화면을 초기화 합니다. 그러면 이전에 출력했던 지우기 1초전 이라는 문자가 지워지는 것을 볼 수 있습니다. 그리고 다시 1초간 프로그램이 정지 했다가 화면에 지우기 완료 라는 문자가 출력되는 것을 볼 수 있습니다. 해당 예제에 사용된 sleep함수는 ms 단위로 프로그램을 일시 정지 시키는 기능을 합니다. 예를들어 1000을 적으면 1초가 되고 60,000은 1분을 의미합니다. 알아두면 유용하게 사용 가능합니다.


1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <windows.h>
 
int main() 
{    
    printf("지우기 1초전\n");
    Sleep(1000); //1초 딜레이
    system("cls"); //콘솔화면 지우기
    Sleep(1000);
    printf("지우기 완료\n");
}
cs




두번째 예제 입니다. 

 while을 사용하여 무한반복하면서 사용자로부터 값을 입력받습니다. scanf로 값을 입력받아서 입력받은 데이터가 1이면 초기화를 시키고 2이면 프로그램을 종료시킵니다. if문으로 입력받은 값이 1인지 2인지를 검사합니다. 1이면 system("cls") 함수 호출로 화면을 초기화 시킵니다. 2이면 break 문을 사용하여 while문을 나가게 합니다. 그래서 해당 프로그램이 종료하게 됩니다. 간단하지만 응용하면 다양한 프로그램을 작성할 수 있습니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <windows.h>
 
void main()
{
    int a;
    while(1) {
        printf("숫자입력(1:초기화, 2: 종료) : ");
        scanf("%d"&a);
        if(a==1) {
            system("cls");
        } else if(a==2) {
            break;
        }
    }    
}
 
cs

 콘솔을 지우는 것 이외에도 다양한 system 함수에 기능이 존재합니다. 예를들어 System함수안에 "calc"를 입력하면 계산기가 실행되는 것을 볼 수 있다. notepad 를 입력하면 메모장이 실행됩니다. 해당 명령어들은 하나의 프로그램이며 해당 프로그램들은 windows 폴더안에 있습니다. 알아두면 유용한 것 들이 많으니 나중에 정리해서 포스팅하도록 하겠습니다.


Posted by 꿈만은공돌
,