C 함수 (fopen
)가있는 파일을 열고 해당 핸들을 C++ 파일 스트림 (fstream
...)에 할당 할 수 있습니까?C 파일 핸들을 C++ 파일 스트림에 할당
묻는 이유 : Windows에서 UTF8을 처리하려고하지만 fstream
클래스에는 const char*
ctor/open 메서드 만 있습니다. 그래서 C API를 사용하여 열어야하고 스트림 객체가 그것을 사용하게해야합니다.
부스트 스트림 라이브러리를 사용하면 싱크/소스를 지정할 수도 있기 때문에 가능 할지도 모르지만 어디서부터 시작해야할지 모르겠습니다.
설명 : UTF8 문자열로 지정된 경로로 파일을 열고 싶습니다. 따라서 파일 열기 방법은 fstream
이 아닌 UTF8 경로를 지원해야합니다. const wchar_t*
을 수락하는 MSVC 확장이 도움이되지만, MinGW는 이러한 과부하를 제공하지 않습니다. 그래서 대신 창문에 wfopen
을 사용해야합니다.
내가 누락되었지만'UTF-8'은 정상적인'char *'버퍼가 필요합니다. 또한 fstream 열기 메서드는 파일 이름 만 처리하므로 파일 인코딩에 어떤 차이가 없습니다. fstream으로 파일을 여는 것이 왜 작동하지 않는지에 대해 더 구체적으로 설명해 줄 수 있습니까? – Galik
'fstream'에서 문자열을 읽는 것은 그것에 할당 된 로케일에 달려 있습니다. –
파일 이름은 UTF8입니다. 추가 된 내용이 – Flamefire