닌자고양이
[C/C++] 콘솔에 확장 아스키 문자 출력 본문
1. 한글 윈도우(CP949)인 경우 코드 페이지를 CP1252로 변경해 윈도우 확장 아스키 문자 출력
윈도우 표준 8비트 코드 페이지 CP1252(Windows-1252, ISO-8859-1, 라틴 알파벳 문자 집합) 사용
#include <stdio.h>
#include <windows.h>
int main()
{
SetConsoleOutputCP(1252); // 코드 페이지 CP1252 로 변경
printf("%c", 216); // 윈도우 확장 아스키 문자 Ø 출력
}
* 코드 페이지를 1252 대신 437 을 사용하면 도스 확장 아스키 문자 ╪ 를 출력한다.
2. 콘솔 출력 스트림을 유니코드 모드로 변경한 뒤 유니코드 문자 함수를 사용
유니코드는 16비트 코드 페이지로 8비트 코드 페이지 1252를 하위 호환함
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
int main()
{
_setmode(_fileno(stdout), _O_U16TEXT); // 출력 스트림을 유니코드 모드로 변경
wprintf(L"%c", 216); // 유니코드 출력 함수로 확장 아스키 문자 Ø 출력
}
3. 코드 페이지를 콘솔창의 코드페이지(949)와 맞추고 printf 또는 wprintf 로 wide character 출력
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, ".949");
wprintf(L"%c", 216);
printf("%lc", 216);
}
'C C++' 카테고리의 다른 글
[C/C++] 중간값 구하기 mid(a, b, c) (0) | 2020.09.09 |
---|---|
[C/C++] 공백으로 구분된 정수 배열 입력 받기 (split) (0) | 2020.01.20 |
[C/C++] ctrl+c 감지하기 (0) | 2019.12.03 |
[C/C++] 369 (0) | 2019.10.31 |
[C/C++] 소수 구하기 - 에라토스테네스의 체 (0) | 2019.10.28 |
Comments