1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <stdio.h> #include <Windows.h> #include <string.h> void gotoxy(int x, int y); void center(char *str); void center_2(char *str, ...); int getCursorPosition(void); int main() { char arr[] = "happy birthday to you"; center(arr); return 0; } void center(char *str) { int x = (80 - strlen(str)) / 2; int y = getCursorPosition(); gotoxy(x, y); printf("%s", str); if (strchr(str, '\n') == NULL) printf("\n"); } void center_2(char *str, ...) { int x = (80 - strlen(str)) / 2; int y = getCursorPosition(); gotoxy(x, y); printf("%s", str); if (strchr(str, '\n') == NULL) printf("\n"); } void gotoxy(int x, int y) { // COORD 구조체 : short x, short y로 이루어진 구조체 (x좌표, y좌표) COORD Pos = { x, y }; // 화면처리 함수 windows.h 포함시켜야함 // https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms686025(v=vs.85).aspx 참고바람 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); } int getCursorPosition(void) { CONSOLE_SCREEN_BUFFER_INFO buffInfo; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &buffInfo); // 현재콘솔스크린버퍼(GetStdHandle(STD_OUNPUT_HANDLE))에서 정보읽어와서 buffInfo에 저장 return buffInfo.dwCursorPosition.Y; //CONSOLE_SCREEN_BUFFER_INFO구조체형 변수 buffInfo에 속한 //COORD형 dwCursorPosition 중 y값을 리턴(x, y좌표값이 들어있다) } | cs |
'미래(2015-2016) > 자습' 카테고리의 다른 글
소코반(준완성), 테트리스 (1) | 2015.10.08 |
---|---|
주차관리 프로그램 (0) | 2015.09.25 |
야구게임 (0) | 2015.09.24 |
단위별로 콤마 찍기 (0) | 2015.09.23 |
주민등록번호 유효성 검사 (0) | 2015.09.23 |