Layer7 01 과제 - "Hello, Layer7!" 간지나게 출력하기

2019. 3. 23. 17:09layer7

선린 인터넷 고등학교 layer 7 동아리에 들어가 첫 번째 과제

"'hello Layer 7' 간지 나게 출력하기"라는 과제를 받았습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h>
#include<Windows.h>
#include<conio.h>
 
 
int main()
{
    //프로그램의 이름 설정추
    system("title Layer7");
    //프로그램의 크기 설정,  cols=가로 lines=세로 
    system("mode con cols=150 lines=40");
    
    //글자 색을 설정할 수 있는 함수 
    system("color E");
 
    printf("\n\n\n\n\n\n\n"); //시작할 때 줄바꿈 6번을 하여 좀 더 자연스럽게 연출
 
    //부엉이, layer 7,... 아스키 아트 
    printf("          /.....    `...................` `...`-                                                                                           \n"); Sleep(100);
    printf("          `-   `.:/-`              .:/-`   `-`                                                                                             \n"); Sleep(50);
    printf("            `-``.-```-.`          `--`   `-..-            Hello                                                                            \n"); Sleep(100);
    printf("             --` `...-:-`       -:.....   `:                                                                                 77777777777   \n"); Sleep(50);
    printf("             : .-ㅁㅁㅁ`:-     `+`ㅁㅁㅁ`:  ..             01                0110     10       01  0101010101  01010101       77       77   \n"); Sleep(100);
    printf("          .. : :  ㅁㅁ.`:-```` ..:  ㅁㅁ : :               10              10    01    01     10   10          10    10       77       77   \n"); Sleep(50);
    printf("           ..  ..`/oo-.-  -/``/. ...-:.`-.  .-            01              01     10    10   01    01          01     01               77   \n"); Sleep(100);
    printf("           `/`  `....-.  `--.---  ``...`   `-:            10             01010101010      01      101010101   10101010                77   \n"); Sleep(50);
    printf("           :`..`   `  ``..` .- `-.``      `.. `-          01             01       10      10      01          01  10                  77   \n"); Sleep(100);
    printf("         `/.  ``.......`````````````......``   :`         10            10         01     01      10          10    01                77   \n"); Sleep(50);
    printf("        `-/         ``..`````````...``         ./`        010101010101  01         10     10      0101010101  01      01              77   \n"); Sleep(100);
    printf("       `:`-       `..` -.-`--`-.- `..`       `--`                                                                                          \n"); Sleep(50);
    printf("        :`..      ..`   :`-.--`-`:   `.-`     `- :                                                                                         \n"); Sleep(100);
    printf("       : ..    `-`     ``.--`.-.      `-`    `- -.                                                          - We hack the universe         \n"); Sleep(50);
    printf("      .. .-   `-         :`- :-`        -`   .. `:                                                                                         \n"); Sleep(100);
    printf("       -`  :   :          .  ``          :`  :   :                                                                                         \n"); Sleep(50);
    printf("           -`  :` ..                     :  :   :                                                                                          \n"); Sleep(100);
    printf("          `-   : -`                      : :`  .-                                                                                          \n"); Sleep(50);
    printf("        -` .--`-                          :--.  :                                                                                          \n"); Sleep(100);
    printf("              `-.                      `-.    `                                                                                            \n"); Sleep(50);
    printf("                `...`                `-.                                                                                                   \n"); Sleep(100);
    printf("                    ..:...```````...:.                                                                                                     \n"); Sleep(50);
    printf("                      :---.`..../.`:-.                                                                                                     \n"); Sleep(100);
    printf("                      ` `..     `. .                                                                                                       \n"); Sleep(400);
 
    
    _getch(); // 키보드를 누르기 전까지 아무런 동작도 하지 않는다.
}
cs



# 프로그램 코드 설명


1
2
3
4
5
6
7
8
9
10
    //프로그램의 이름 설정추
    system("title Layer7 01 task");
    //프로그램의 크기 설정,  cols=가로 lines=세로 
    system("mode con cols=150 lines=40");
    
    //글자 색을 설정할 수 있는 함수 
    system("color E");
 
    printf("\n\n\n\n\n\n\n"); //시작할 때 줄바꿈 6번을 하여 좀 더 자연스럽게 연출
 
cs

①: system("title Layer 7 01 task");

- 프로그램의 제목을 설정하기 위해

system() 함수와 dos의 명령어인 title 명령어를 사용했습니다.

②: system("mode con cols=150 lines=40");

- 프로그램 실행창의 크기를 정할 수 있게 해주는 명령어 입니다.

③: system("color E");

- 실행창에서 화면을 출력 할 때, 배경, 글자색을 바꿀 수 있게 해주는

명령어를 사용하였습니다.

※system() 함수 안에 명령어들은 모두 도스 명령어이므로 cmd에서도 사용 가능합니다.


④: printf("\n\n\n\n\n\n"):

- 프로그램 실행창에 아스키 아트한 것을 정중앙으로 옮기기 위해

줄바꿈을 하였습니다.


# Sleep() 함수

- Windows.h 헤더 파일에 포함돼 있는 Sleep() 함수는 프로그램에서

일정 시간 동안 컴퓨터를 대기 시킬 때 사용하는 함수 입니다.

매개 변수로 전달된 값(second)의 1/1000초를 대기 시키는 함수 입니다.

_ex) Sleep(1000); ==> 1초 , Sleep(0.5) ==> 0.5초


#

또한, printf() 함수의 뒤에 windows.h 헤더 파일 안에 있는

Sleep() 함수를 사용하여 출력하는데 한 번에 화면이 나오는 것이 아닌

한 줄 한 줄 내려 오는 것처럼 만들었습니다 .


# getch() 함수

- 원래는 getch() 함수지만, visual studio의 SDL을 활성화 시킨 상태로 프로그래밍을 하여

_getch()로 사용하였습니다.

- _getch() 함수 _getch() 함수는 visual studio가 보안성의 문제로

getch()가 아닌 _getch() 함수를 쓰도록 권장하고 있습니다.



- getch()와 _getch()의 사용법은 동일합니다.




getch(), _getch()

- 키보드에 입력이 들어올 때까지 대기하고,

키보드를 누른다면 입력한 값을 가져온다.

# getch() 함수를 사용한 이유

- getch() 함수가 없을 때는 저 밑에

"계속 하시려면 아무 키를 누르세요"와 같은? 비슷한 말이

나옵니다. 하지만 저는 그게 보기 싫어서

getch() 함수를 이용해 아무런 텍스트로 뜨지 않게 하였다.


실행 결과

실행 결과 사진 입니다.

printf() 문으로 하나하나 출력하느라 힘들었습니다...ㅜ