CafeM0ca

[C] 아스키코드 그 너머의 문자(extended ASCII, unicode) 본문

Programming/C

[C] 아스키코드 그 너머의 문자(extended ASCII, unicode)

M0ca 2019. 11. 28. 13:05
반응형

Problem Definetion

console에 '-'(dash)를 찍어보면 생각보다 작은 것을 알 수 있다. 그래서 '-'보다 길쭉한 dash가 필요했다.

Extended ASCII

확장아스키코드표_출처_구글

아스키코드 196번에 내가 원하던 길쭉해보이는(?) 대쉬를 써보고 싶었다.
보편적으로 C에서 문자를 찍어내기 위해서는 아래와 같다.

char ch;
printf("%c", ch);

하지만 위의 문법은 1Byte까지 지원한다.
2Byte의 문자를 찍어내기 위해서는 extended ASCII(확장 아스키코드)가 필요하다.

wchar_t(Widw chracter)

wchar_t는 유니코드와 같이 2Byte 이상의 문자를 출력하기 위해 존재한다.
그리고 이를 출력하기 위해서는 wprintf를 사용한다. 다음 예제를 보자.

wcahr_t wch = 65; // 'A'
wprintf(L"%c\n", wch);

wch = 196;
wprintf("L"%c\n", wch);

출력결과 1행은 A가, 2행은 아무것도 안보인다.

아 그냥 유니코드 쓰자..

2시간정도 삽질해봤지만 안됐다. 그냥 유니코드 쓰는게 맘 편하더라.

setlocale(LC_ALL, ""); // 지역설정, 안해주면 길쭉이 Dash가 짧은 Dash 2개로 출력된다.
wchar_t wch = 0x2014; // — '-'(dash 보다 길다)
wprintf("L"%lc\n", wch);

출력해보면 잘 나온다.

반응형

'Programming > C' 카테고리의 다른 글

[C] X11 라이브러리 설치  (0) 2019.11.25
[C]별찍기  (0) 2018.01.12
[C]const 포인터  (0) 2017.11.28
[C]시저암호(카이사르암호)  (0) 2017.11.19
[C] fwrite,fread  (0) 2017.11.08
Comments