일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- C++ library
- 자료구조
- Nebula
- C언어
- 프로그래밍
- C++
- c++ heap
- C++ gui
- C++ gui 라이브러리
- vim-go
- tour of go
- BOJ
- go channel
- LOB
- JUCE라이브러리
- JUCE 튜토리얼
- 알고리즘
- 공룡책
- JUCE library
- 운영체제
- 코딩
- OS
- a tour of go
- 연결리스트
- 리듬게임
- gui
- go
- JUCE
- Docker
Archives
- Today
- Total
CafeM0ca
[C] 아스키코드 그 너머의 문자(extended ASCII, unicode) 본문
반응형
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