Borland C++ 의 conio.h에 들어있던 콘솔용 기능인 clrscr(), gotoxy(x,y), delay(x) 는 Visual C++ 이나 gcc, Dev C++등에서는 사용할 수 없다.
그러나 clrscr(), delay(x), gotoxy(x,y)는 windows.h 를 이용해 Visual C++이나 Dev C++ 에서 구현할 수 있다. 인터넷에 떠도는 것들 중에서 잘못된 게 많아, 여기에 이렇게 올린다.
1. gotoxy();
참고 : 인터넷에서 떠도는 것 중에서, x,y대신 x-1, y-1이라고 되어있는 경우가 있는데, 이는 잘못된 것이다. 이는 추후에 올릴 nibbles for Dev C++ (in Windows) 에서 그 이유를 알 수 있다.
#include <windows.h>
void gotoxy(int x, int y)
{
COORD Pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
2. clrscr();
주의 : clrscr()을 사용하기 위해서는 필히 gotoxy(); 가 필요하다. printf(만을 가지고 구성해보려고 한 적이 있으나, 화면 떨림이 너무 심해서 포기했다.
참고 : 인터넷에서 떠도는 중에는 #include <windows.h>를 이용하여, system("cls");를 사용하라는 사람들이 있는데, 이는 매우 비효율적이다. 실제로 프로그램을 구현할 때 속도차가 많이 나는 것을 알 수 있다.
#include <stdio.h>
void clrscr (void)
{
for (int i = 0; i<24; i++) { // 콘솔 화면이 24줄까지임을 이용
gotoxy(0,i);
printf("%80c",' '); // 콘솔 가로의 칸이 80칸임을 이용. 참고로 안 띄면 실행 에러
}
}
3. delay();
참고 : delay()는 windows.h에 Sleep()라는 함수가 동일한 기능을 하므로, 단순히 치환해주면 끝이다. 그러나 Borland C++로 짜여진 장문의 프로그램에서 이를 치환하는 건 매우 힘들 수 있으므로, 다음과 같이 구현하자.(주의! Sleep()는 sleep()가 아니다.)
#include <windows.h>
void delay(int x)
{
Sleep(x);
그러나 clrscr(), delay(x), gotoxy(x,y)는 windows.h 를 이용해 Visual C++이나 Dev C++ 에서 구현할 수 있다. 인터넷에 떠도는 것들 중에서 잘못된 게 많아, 여기에 이렇게 올린다.
1. gotoxy();
참고 : 인터넷에서 떠도는 것 중에서, x,y대신 x-1, y-1이라고 되어있는 경우가 있는데, 이는 잘못된 것이다. 이는 추후에 올릴 nibbles for Dev C++ (in Windows) 에서 그 이유를 알 수 있다.
#include <windows.h>
void gotoxy(int x, int y)
{
COORD Pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
2. clrscr();
주의 : clrscr()을 사용하기 위해서는 필히 gotoxy(); 가 필요하다. printf(만을 가지고 구성해보려고 한 적이 있으나, 화면 떨림이 너무 심해서 포기했다.
참고 : 인터넷에서 떠도는 중에는 #include <windows.h>를 이용하여, system("cls");를 사용하라는 사람들이 있는데, 이는 매우 비효율적이다. 실제로 프로그램을 구현할 때 속도차가 많이 나는 것을 알 수 있다.
#include <stdio.h>
void clrscr (void)
{
for (int i = 0; i<24; i++) { // 콘솔 화면이 24줄까지임을 이용
gotoxy(0,i);
printf("%80c",' '); // 콘솔 가로의 칸이 80칸임을 이용. 참고로 안 띄면 실행 에러
}
}
3. delay();
참고 : delay()는 windows.h에 Sleep()라는 함수가 동일한 기능을 하므로, 단순히 치환해주면 끝이다. 그러나 Borland C++로 짜여진 장문의 프로그램에서 이를 치환하는 건 매우 힘들 수 있으므로, 다음과 같이 구현하자.(주의! Sleep()는 sleep()가 아니다.)
#include <windows.h>
void delay(int x)
{
Sleep(x);
}
'프로그래밍 > C/C++' 카테고리의 다른 글
C++ :: 클래스의 기본, 클래스와 객체, 객체지향 프로그래밍 (0) | 2010.08.12 |
---|---|
C++ :: bool형, 참조자(Reference), new & delete, C표준함수 호출 (0) | 2010.08.12 |
C++ :: 입출력, 함수오버로딩, 디폴트매개변수, 인라인함수, 이름공간 (0) | 2010.08.12 |
C :: 퀵소트 라이브러리 함수 사용법 (0) | 2010.06.30 |
C :: 비트 연산자 (1) | 2010.05.26 |
댓글 로드 중…