2012년 3월 18일 일요일

VS2008에서 ifstream을 이용한 파일 읽기 문제

특별한 설정을 해주지 않으면 VS2008에서 std::ifstream을 이용해 한글 파일이름과 한글 경로를 가진 파일을 읽을 수 없다. 반드시 아래 코드를 InitInstance()와 같은 함수 내부에 넣어 국가/언어집합(locale)을 한국으로 바꾸어 주어야 한다.

#include <locale>

setlocale(LC_ALL, "Korean");

나모님이 주신 추가의견으로 아래 코드를 사용하면 한국에만 국한되지 않는 프로그램을 작성할 수 있다.
#include <locale>

setlocale(LC_ALL, "");

[참고문헌]
[1] 나모의 노트, "cout", 2011.
Enhanced by Zemanta

댓글 2개 :

  1. "나모의 노트" 작성자입니다.
    요거말이에요.. setlocale ( LC_ALL, "" ); 로 쓰세요.
    http://wapi.springnote.com/pages/8006506
    을 읽어보세요(namoda.springnote.com은 전반적인 내용이고 wapi.springnote.com는 윈도우쪽 개발만 모아서 정리하고 있습니다)

    답글삭제
  2. 영광입니다, 나모님. 직접 찾아주셔서 조언도 주시고요. 감사합니다.

    답글삭제

욕설이나 스팸글은 삭제될 수 있습니다. [전파거북이]는 선플운동의 아름다운 인터넷을 지지합니다.