유용한 매크로 및 함수(콘솔)

C/C++ 2013. 7. 4. 19:22

1. 화면을 지우는 매크로 정의

#include <stdlib.h>

#define clear() system("cls")

clear(); 함수는 콘솔 화면을 지움


2. 프로그램을 멈추게 하는 함수

#include <stdlib.h>

system("pause");

다른 방법으로는 getchar()


3. 커서를 x,y좌표로 이동시키는 함수 정의

#include<windows.h>

void gotoxy(int gox, int goy)
{
    HANDLE hOut;
    COORD Cur;
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    Cur.X = gox;
    Cur.Y = goy;
    SetConsoleCursorPosition(hOut, Cur);
}

gotoxy(sx,sy); 함수는 커서를 (sx,sy)좌표로 이동시킴


4. 커서 출력 여부를 결정하는 함수 정의

#include<windows.h>

void cursor(BOOL bVisible)
{
    HANDLE hConsole;
    CONSOLE_CURSOR_INFO ConsoleCursor;
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    ConsoleCursor.bVisible = bVisible;
    ConsoleCursor.dwSize = 20;
    SetConsoleCursorInfo(hConsole , &ConsoleCursor);
}

cursor(false); 커서 출력 안됨 

cursor(true); 커서가 출력

ConsoleCursor구조체의 dwSize값을 변경하면 커서의 두께조절, default 값은 20

반응형

영역 결정 연산자(Scope Resolution Operator, ::)

C/C++ 2013. 5. 28. 20:17

C언어에서는 지역변수가 전역변수 보다 우선 순위를 갖는다. 이 지역변수의 사용영역(Scope) 밖에서만 전역변수에 접근을 할 수 있다.


하지만, C++에서는 같은 변수명을 갖는 지역변수의 사용영역 안에서도 영역 결정 연산자 ::를 붙여 전역변수에 접근을 가능하게 하고 있다.


int var = 100;

 

int main()

{

 int var = 200;

 

cout << ::var << endl;

 



실행결과

 

100


MFC 프로그래밍 팁 

 

영역 결정 연산자는 함수명 앞에 사용될 수 있다. 클래스의 멤버함수를 사용할 때 클래스명 다음에 영역 결정 연산자가 사용될 때는 해당 클래스에 속해 있는 함수임을 나타낸다. 

 

CWnd::MessageBox(_T("Hello~")); 

 

위 코드는 MessageBox 함수가 CWnd 클래스에 속해 있는 멤버함수라는 의미가 된다.

 

그러나 같은 이름으로 된 전역함수인 경우에는 함수명 앞에 그냥 영역 결정 연산자를 붙인다.

 

::myFunction( ~ ); 

반응형

private, public, protected 공부

C/C++ 2013. 5. 28. 19:41

private : 이 속성을 가지는 멤버는 외부에서 액세스할 수 없으며, 구조체의 멤버 함수만 액세스할 수 있다.

외부에서는 프라이비트 멤버를 읽을 수 없음은 물론이고 존재 자체도 알려지지 않는다. 


public : 이 속성을 가지는 멤버는 외부로 공개되어 누구나 읽고 쓸 수 있고 함수의 경우는 호출할 수 있다.

구조체가 자신의 속성이나 동작을 외부로 공개하는 수단이 되며 퍼블릭 멤버를 소위 인터페이스라고 한다. 


protected : private와 마찬가지로 외부에서는 액세스할 수 없으나 단, 상속된 파생 클래스는 이 멤버를 액세스할 수 있다.

프라이비트 멤버는 파생 클래스에서조차도 참조할 수 없으며 오로지 자신만이 이 멤버를 참조할 수 있다는 점이 다르다. 


struct Test{

private:

int num;

char str;

void Initialize();

public:

int i;

int j;

void func(int n);

protected:

float k;

};


void main()

{

Test test;

test.num=1; // 에러

test.i=10; // 대입 가능

test.func(3); // 호출 가능

test.Initialize(); // 에러


반응형

[C/C++]도형 출력(삼각형,피라미드,다이아몬드)

C/C++ 2013. 2. 20. 12:56

1.삼각형1 출력

2.삼각형2 출력

3.피라미드 출력

4.다이아몬드출력



반응형

'C/C++' 카테고리의 다른 글

유용한 매크로 및 함수(콘솔)  (0) 2013.07.04
영역 결정 연산자(Scope Resolution Operator, ::)  (0) 2013.05.28
private, public, protected 공부  (0) 2013.05.28