작성
·
91
0
배열을 통해 콘솔에 5x5 맵을 표현하는 부분에서
while (true) {
HANDLE output = ::GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos = { 0, 0 };
::SetConsoleCursorPosition(output, pos);
for (int y = 0; y < MAP_SIZE; y++) {
for (int x = 0; x < MAP_SIZE; x++) {
switch (GMap2D[y][x]) {
case 0:
cout << " □ ";
break;
case 1:
cout << " ■ ";
break;
case 2:
cout << " ● ";
break;
}
}
cout << endl;
}
}
위와 같이 메인에 함수에 축약해서 코드를 짜놓았습니다. (실제로 헤더와 추가 cpp에서 도는것을 질문하기 쉽게 축약한것이라 실제 구동에는 차이가 없는것 같습니다.)
위 코드에서 궁금한 부분이 2가지 생겼습니다.
위 부분에서 while true로 돌고 있는데 무엇때문에 한번만 출력되는지 궁금합니다.
위 코드를 작성하게 되면 다른 코드를 작성했을 때 콘솔창에 나타나는 "~~~~ 코드와 함게 종료되었습니다.... ~~~ 이 창을 닫으려면 아무 키나 누르세요.." 와 같은 프로그램의 끝을 알리는 자동 구문도 안뜨더군요.
위 두 가지가 궁금합니다.
답변 1
0
한번만 출력되는게 아니라, 매 번마다 같은 위치가 다시 그리고 있어서
변화가 없는 것처럼 보이는 것입니다.
while (true)로 인해서 프로그램이 절대 끝나지 않아 종료되었습니다 문구가 뜨지 않는 것입니다.
아 지속적으로 루프가 계속 돌고 있는거군요 감사합니다