Views 14254 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
비쥬얼 스튜디오(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);
}

?

List of Articles
No. Category Subject Author Date Views
85 System/OS 무료로 HTTPS 적용하기 (Let's Encrypt) file hooni 2017.10.28 1401
84 System/OS OpenSSL로 ROOT CA 생성 및 SSL 인증서 발급하기 hooni 2017.10.28 1455
83 System/OS [mac] How to uninstall MySQL on Mac OS. hooni 2017.11.08 884
82 Database [mysql] 중복데이터 삭제하는 초간단 쿼리 hooni 2017.11.22 3421
81 Etc RSVP 란? file hooni 2017.11.22 981
80 Database [mysql] MySQL 한글 깨짐 현상 해결하기(UTF8) hooni 2017.12.01 5465
79 Develop [php] mysql_ 과 mysqli_ 의 차이 hooni 2017.12.01 1691
78 Develop [php] Laravel 5.4: Specified key was too long error file hooni 2017.12.04 9221
77 System/OS [linux] 초간단 Postfix, Covecot, SSL/TLS (SMTP) file hooni 2017.12.11 9323
76 System/OS [linux] 초간단 SquirrelMail 설치/설정 (다람쥐 메일) hooni 2017.12.11 4457
75 Develop [js] URL 파싱하기 (jQuery 안쓰고) hooni 2017.12.14 1306
74 Develop [js] 문자열에서 숫자만 걸러내기 (jQuery 안쓰고 정규표현식) hooni 2017.12.14 1102
73 Database [mysql] ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. hooni 2017.12.15 1196
72 Database [mysql] MacOS에 MySQL 설치, 설정, 암호 재설정 file hooni 2017.12.15 1460
71 Develop [php][laravel] 초간단 MacOS에서 Laravel 개발 환경 구축 hooni 2017.12.15 1869
70 Develop [php][laravel] 라라벨 프로젝트 생성 및 구조 file hooni 2017.12.15 2378
Board Pagination Prev 1 ... 67 68 69 70 71 74 Next
/ 74