posted by 초식사자 2011.07.04 11:32

-콘솔의 원하는 위치에 텍스트를 출력합니다.
ex:) printText("Hello World!!",3,DEFAULT,RIGHT);
//오른쪽 정렬로 우측 3칸을 비우고 현재 라인에 문자열 출력

#include <windows.h>
#include <stdio.h>

//텍스트 출력 정렬
#define LEFT -1
#define CENTER 0
#define RIGHT 1
//기본 좌표
#define DEFAULT -1

void printText(char* buffer,int x,int y,int align){
        COORD cr;
        CONSOLE_SCREEN_BUFFER_INFO info;
        int width; //콘솔 너비
        int height; //콘솔 높이

        GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&info);

        //콘솔 너비,높이 계산
        width=info.srWindow.Right-info.srWindow.Left;
        height=info.srWindow.Bottom-info.srWindow.Top;


        //디폴트 좌표 설정
        if(x == DEFAULT || x < 0 || x > width){
                x=0;
        }
        if(y == DEFAULT){
                y=info.dwCursorPosition.Y;
        }

        //실제 좌표 계산
        if(align == CENTER){
                cr.X=(width-(strlen(buffer)+x))/2;
        }else if(align == RIGHT){
                cr.X=width-(strlen(buffer)+x);
        }else{
                cr.X=x;
        }

        if(cr.X < 0){
                cr.X=0;
        }
        cr.Y=y;
 
        //좌표 설정
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cr);

        puts(buffer);
}



'프로그래밍 > C/C++' 카테고리의 다른 글

시스템 드라이브 목록 얻기  (0) 2011.07.04
운영체제 정보 얻기  (0) 2011.07.04
콘솔 텍스트 출력하기  (0) 2011.07.04
콘솔 창 숨기기  (0) 2011.07.04
파일 관련 API  (0) 2011.05.10
C에서 입력 버퍼를 비울 때 피해야할 방법  (0) 2010.08.11

댓글을 달아 주세요