ostream을받는 함수를 사용하고 있지만 wostream은 다른 것을 변환하는 방법이 있습니까?wostream을 ostream으로 변환하려면 어떻게해야합니까?
특히 ostream을 사용하는 boost :: write_graphviz를 사용하고 싶지만 현재 wostream의 < < 연산자에 있습니다.
ostream을받는 함수를 사용하고 있지만 wostream은 다른 것을 변환하는 방법이 있습니까?wostream을 ostream으로 변환하려면 어떻게해야합니까?
특히 ostream을 사용하는 boost :: write_graphviz를 사용하고 싶지만 현재 wostream의 < < 연산자에 있습니다.
변환 할 수 있다고 생각하지 않습니다. ostream을 얻어야합니다.
만약 내가 당신이라면 wostream
을 ostream
으로 변환하는 대신 오히려 나의 접근 방식을 변경하고 싶습니다. 나는 당신이 얻고 자하는 것이 넓은 char stream없이 쉽게 얻을 수 있다고 확신합니다.
물론 응용 프로그램의 실제 용도에 따라 다르지만 10 개 중 9 개에서 변환 루틴이나 타사 라이브러리 사용 (예 : iconv
)을 간단히 구현하면 충분합니다.
업데이트 : 구글 코드 wofstream
두에 대해 하나 개의 검색 결과가 (무슨 말인지의 증거로) - wifstream
를 들어. 그 사실은 그 자체로 말하지 않습니까? 그래프 출력이 wostream 연산자가없는 경우
당신은이 작업을 수행 할 수 있습니다 귀하의 문자열은 177 위의 임의의 값을 가질 수있는 경우
std::wstring convert(std::string const& s)
{
unsigned char const* tmp = reinterpret_cast<unsigned char const*>(s.data());
std::wstring res = std::wstring(tmp, tmp + s.size());
return res;
}
void f(std::wostream & out)
{
std::ostringstream gout;
gout << graph; // or whatever...
out << convert(gout.str());
}
캐스트가 필요한 경우 할 수있는 이상한 문자 때문에로 턴 wstring 생성자가 수행 할 캐스트는 스트레이트 비트 복사 대신 네거티브로 네거티브를 바꿉니다.
물론 어댑터를 사용하여 변환 할 수 있습니다. –