강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dijiket7906
dijiket7906

câu hỏi đã được viết

[Khóa học toàn diện dành cho người mới bắt đầu lập trình trò chơi] C++ & Cấu trúc dữ liệu/Thuật toán & STL & Toán học trò chơi & Windows API & Máy chủ trò chơi

Thực hành mảng

섹션4 배열실습 질문입니다.

Viết

·

123

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가지 생겼습니다.

  1. 위 부분에서 while true로 돌고 있는데 무엇때문에 한번만 출력되는지 궁금합니다.


  2. 위 코드를 작성하게 되면 다른 코드를 작성했을 때 콘솔창에 나타나는 "~~~~ 코드와 함게 종료되었습니다.... ~~~ 이 창을 닫으려면 아무 키나 누르세요.." 와 같은 프로그램의 끝을 알리는 자동 구문도 안뜨더군요.

위 두 가지가 궁금합니다.

c++네트워크ue-blueprint게임수학windows-api

Câu trả lời 1

0

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

  1. 한번만 출력되는게 아니라, 매 번마다 같은 위치가 다시 그리고 있어서
    변화가 없는 것처럼 보이는 것입니다.

  2. while (true)로 인해서 프로그램이 절대 끝나지 않아 종료되었습니다 문구가 뜨지 않는 것입니다.

dijiket7906님의 프로필 이미지
dijiket7906
Người đặt câu hỏi

아 지속적으로 루프가 계속 돌고 있는거군요 감사합니다

Hình ảnh hồ sơ của dijiket7906
dijiket7906

câu hỏi đã được viết

Đặt câu hỏi