프로그래밍 언어에 있어서 한번은 꼭 겪어야 하는 문제이다. 이 짦은 코드에 대표적인 3개의 난관이 있다.

첫째, 유니코드
유니코드란 무엇인가?
 G++과 VC는 소스코드를 어떻게 인코딩 하는가?
또한 와이드형 캐릭터 문자열 리터럴을 어떤 인코딩 방식을 따르는가?
또한 출력 되는 값들은 어떤 인코딩을 출력 되는가?

둘째, 로케일
왜 로케일을 정해주어야만 와이드형 캐릭터가 출력 되는가?
유니코드인데 왜 로케일 따위가 필요한가?


셋째, 스트림
왜 14번째 std::wcout 에서 글짜가 나오다가 짤리는가?
std::cout 은 왜 출력이 잘되고 std::wcout 에선 더 이상의 스트림을 받지 못하는가?
flush 는 언제 발생하는가?


알아야 할 건 산더미다.

저작자 표시
신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. Favicon of http://kuaaan.tistory.com kuaaan 2009.06.04 15:58 신고  Addr  Edit/Del  Reply

    흠냐... RSS를 보고 평소 궁금했던 부분이라 들어왔더니.. 물음만 던지시고 답은 안주시는군요. ^^

  2. Favicon of http://kuaaan.tistory.com kuaaan 2009.06.08 14:37 신고  Addr  Edit/Del  Reply

    기대하고 있겠습니다.^^

  3. tybalt 2014.12.18 17:50 신고  Addr  Edit/Del  Reply

    첫째 : 인코딩은 해당 프로그램이 동작하는 환경입니다.
    둘째 : 출력을 하는 대상 터미널에 따라 출력이 달라집니다.
    세째 : wcout 도 출력이 잘됩니다.

    인코딩에 관련된 문제는 인코딩을 처리하는 터미널, 프로그램모두에 의존적입니다.

    추가로 ... 출력된 데이터는 일반적으로 user side buffer-> kernel buffer -> device 순으로 이동하며
    명시적 flush나 해당 스트림 혹은 파일디스크립터가 닫힐때 flush 됩니다.