none
visual studio 2017 C 관련해서 궁금한게 있어요!!!! RRS feed

  • 질문

  • 아래 첨부된 코드 보시면, 6번 라인을 5번라인과 똑같이 예를 들면

    printf("┌───────────────────┐\n");

    prinitf("│                                     │\n"); 하면 완전 어긋나거든요. 저 문양은 ㅂ 한자로 해서 만든겁니다. 아래처럼 일일히 결과 보면서 맞춰가야하는건가요...?


    이렇게 해야 실제 콘솔창에서 틀이 맞습니다

    printf("┌─────────────────────────┐\n");
    printf("│    a.타이타닉           │\n");
    printf("│    b.아바타             │\n");
    printf("│    c.튤립피버           │\n");
    printf("└─────────────────────────┘\n");

    2017년 12월 14일 목요일 오전 11:02

답변

  • (ㅂ+한자)로 생성되는 '─ '와 스페이스 키로 만드는 공백 ' '의 폭이 동일하지 않기 때문에 단순히 캐릭터 숫자를 맞춰준다고 완벽한 박스가 만들어지지 않습니다. 하려면 동일하게 특수문자로 맞춰주어야 완벽한 박스를 맞추어 줄 수 있겠죠.

    한자를 이용한 공백 문자는 "ㄱ+한자 1번"입니다. 이것으로 채우면 개수를 맞춰서 완벽한 박스를 맞출 수 있습니다. 단, 중간에 공백이 아닌 일반 문자가 들어갈 경우 폰트에 따라 폭에 약간의 단차가 발생할 수도 있을 것 같습니다.

    int main()
    {
    	// 스페이스로 공백을 채우면 정렬 실패
    	//printf("┌─────────────────────────┐\n");
    	//printf("│    a.타이타닉           │\n");
    	//printf("│    b.아바타             │\n");
    	//printf("│    c.튤립피버           │\n");
    	//printf("└─────────────────────────┘\n");
    
    	// ㄱ + 한자 1을 이용한 공백 문자로 채우면 정렬 가능
    	printf("┌─────────────────────────┐\n");
    	printf("│                         │\n");
    	printf("│    b.아바타                 │\n");
    	printf("│    c.튤립피버                │\n");
    	printf("└─────────────────────────┘\n");
    
        return 0;
    }

    2018년 1월 2일 화요일 오후 1:53