Develop
2013.04.23 13:09
[c] vc++ 에서 clrscr(), gotoxy() 함수 사용하기..
Views 14291 Comment 0
비쥬얼 스튜디오(VC++)에서 clrscr(), gotoxy() 함수를 직접 사용하는것은 불가능하다.
왜냐면, vc++는 표준 Ansi C 이외의 함수를 거의 대부분 지원하지 않기 때문..
(위와 같은 콘솔IO 전용 함수들은 표준 Ansi C 에 포함되어있지 않음)
하지만, 방법이 있다^^
clrscr() 함수는 화면을 지우는 함수이고 이와 비슷한 역할을 하는 명령어를 실행하면 된다.
vc++에서는 다음과 같이 꼼수로 대체할 수 있다.
system("cls");
system() 함수는 운영체제(일반적으로 도스) 명령어를 실행시키는 함수로,
cls라는 도스 명령을 프로그램 내부에서 실행한다.
도스 명령어로 cls는 화면을 지우는 명령어이므로,
clrscr()을 쓴 것과 똑같은 결과를 얻을 수 있다.
이 때 slrscr() 함수를 위한 conio.h 헤더파일은 선언해줄 필요가 없다.
대신, system() 함수를 위한 stdlib.h 헤더파일을 반드시 선언해주어야 한다.
#include <stdio.h> // 입출력 #include <conio.h> // getch()를 위해 선언한 것. // 이 헤더파일은 system()하고 관계 없음 -_-; #include <stdlib.h> // system() 함수 사용. int main(void) { printf("Press any key to clear screen..."); getch(); // 키 하나를 입력받을때까지 대기. system("cls"); // 화면을 지움. return 0; }
또 하나 예를 들면..
gotoxy() 함수는 커서의 위치를 이동시키는 함수이다.
이 함수를 대체하려면 비슷한 효과를 내는 SetConsoleCursorPosition() 함수를 사용해야 한다.
(윈 API 에서 기본적으로 제공하는 함수중임, 이름이 좀 길죠. -_-;)
곧바로 사용하면 안되고 아래와 같이 응용하셔서 사용하면 된다.
그대로 복사해갖고 쓰면 됨.
소스 처음 부분에 반드시 프로토타입 선언을 해주어야 함!!
void gotoxy(int x, int y) { COORD Pos = {x - 1, y - 1}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); }
gotoxy() 함수랑 100% 똑같은 역할을 하고,
물론 사용법도 gotoxy() 함수랑 동일함.
마찬가지로 위의 방법을 사용할 때 conio.h 헤더파일을 선언할 필요는 없다.
하지만 windows.h 헤더파일을 반드시 선언해주셔야 한다.
아래 소스 코드 참고..
#include <windows.h> // SetConsoleCursorPosition(), GetStdHandle() #include <stdio.h> // 입출력 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) { COORD Pos = {x - 1, y - 1}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); }
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
685 | Develop | [ios] Xcode를 사용해서 Static Library 만들기 (시뮬레이터 + 디바이스) | hooni | 2015.01.03 | 3403 |
684 | Develop | [ios] Thread Loop 내에서 UI 업데이트 방법 | hooni | 2015.01.03 | 925 |
683 | Develop | [ios] UIView 계층구조 | hooni | 2015.01.03 | 1227 |
682 | Develop | [ios] UIWebView를 이용한 로컬 HTML 파일 표시 | hooni | 2015.01.02 | 1344 |
681 | Develop | [android] 안드로이드 동영상 스트리밍 예제 2 | hooni | 2015.01.02 | 4924 |
680 | Develop | [java] netty (비동기 이벤트 방식 네트워크 프레임워크) 사용법 #2 (client) | hooni | 2015.01.02 | 2132 |
679 | Develop | [java] netty (비동기 이벤트 방식 네트워크 프레임워크) 사용법 #1 (server) 1 | hooni | 2015.01.02 | 2323 |
678 | Develop | ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 | hooni | 2015.01.01 | 1729 |
677 | Develop | [ios] 비동기 블럭 코드 예제 | hooni | 2014.11.21 | 904 |
676 | Develop | [ios] 스크린 캡쳐 (전원버튼 + 홈버튼) 호출 알아내기 | hooni | 2014.11.19 | 1658 |
675 | Develop | [android] 가속도 센서를 이용한 흔듦(Shake) 감지 | hooni | 2014.11.04 | 2009 |
674 | Develop | [web] 더 빠른 웹을 위한 프로토콜, 'HTTP/2' | hooni | 2014.10.20 | 1767 |