질문: vc++ 6.0 에서 gotoxy(), clrscr() 사용하는방법... | trueman1982 / 2003-07-29 18:18 |
어떻게 하면 됩니까.... conio.h 인클루드시켜도 비주얼C++6.0 환경에선 지원이 안된다던데... 저 함수들을 사용할수 있는방법이 아예 없습니까???? 알려주세요~~ | |
답변: 방법이 있습니다. 있고요~ -_-; | overfencing / 2003-07-30 22:14 |
방법이 왜 없습니까..? 답변하신분들께서 말씀하신대로 Visual C++ 6.0 에서는 gotoxy(), clrscr() 같은 함수를 직접 사용하는것은 불가능합니다. 그 이유는 vc++는 표준 Ansi C 이외의 함수를 거의 대부분 지원하지 않기 때문이죠. 위와 같은 콘솔IO 전용 함수들은 표준 Ansi C 에 포함되어있지 않습니다. 하지만, 방법이 완전히 없는건 아닙니다. 일단 말씀하신 clrscr() 함수는 화면을 지우는 함수입니다. 이 함수는 vc++에서 다음과 같이 대체할 수 있습니다. system("cls"); system() 함수는 운영체제(일반적으로 도스) 명령어를 실행시키는 함수입니다. 도스 명령어로 cls는 화면을 지우는 명령어입니다. 위와 같이 하면 clrscr()을 쓴 것과 똑같은 효과를 냅니다. 위의 함수를 사용하실 때 conio.h 헤더파일은 선언해줄 필요가 없구요, stdlib.h 헤더파일을 반드시 선언해주셔야 합니다. ex) #include #include // 이 헤더파일은 system()하고는 관계 없습니다. -_-; #include
int main(void) { printf("Press any key to clear screen...");
getch(); // 키 하나를 입력받을때까지 대기합니다.
system("cls"); // 화면을 지웁니다.
return 0; } 다음 gotoxy() 함수는 커서의 위치를 이동시키는 함수입니다. 이 함수를 대체하려면 비슷한 효과를 내는 SetConsoleCursorPosition() 함수를 사용하셔야 합니다. 윈 API 에서 기본적으로 제공하는 함수중의 하나인데요, 이름이 좀 길죠. -_-; 곧바로 사용하시면 안되고 아래와 같이 응용하셔서 사용하시면 됩니다. 쓰실 때 그대로 복사해갖고 쓰세요. 소스 처음 부분에 프로토타입 선언해주시는거 잊으시면 안 됩니다. ^^
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); gotoxy() 함수랑 100% 똑같은 효과를 냅니다. 물론 사용법도 gotoxy() 함수랑 똑같습니다. 마찬가지로 위의 방법을 사용하실때는 conio.h 헤더파일을 선언하실 필요는 없습니다. 하지만 windows.h 헤더파일을 반드시 선언해주셔야 합니다. 아래 참고로 짜 본 소스 코드 꼭 참고하시길... ex) #include #include
void gotoxy(int x, int y); // 모든 함수에서 (main()함수 포함) // 이 함수를 사용할 수 있도록 프로토타입을 // 선언해줍니다.
int main(void) { gotoxy(15, 10); // 현재 커서의 위치를 가로 15, 세로 10 으로 바꿉니다.
printf("* (15, 10)"); // 출력하는겁니다. 아실거라고 믿쑵니다. -_-a
return 0; }
void gotoxy(int x, int y) SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); 오랜만에 답변다운 답변 해드린 것 같네요. 큰 도움 되셨기를 바랍니다. ^^ |
'프로그래밍' 카테고리의 다른 글
scanf함수로 문자열 입력받는 방법 (0) | 2008.04.25 |
---|---|
fgets함수로 입력받을시 엔터키 지우는 방법 (0) | 2008.04.25 |
이중 포인터형의 동적메모리 할당 해제 (0) | 2008.04.25 |
2차 배열 초기화 (0) | 2008.04.25 |
링크드리스트 모든 동적할당 메모리 해제 함수 (0) | 2008.04.25 |