c++ - Cannot convert from stringw to string / char -
i have been trying convert irr::stringw
(irrlicht game engine core string) can explode string @ delimiter create array / list.
however, cannot convert stringw, not compatible normal functions.
so, split stringw
list have following:
vector<stringw> split(stringw str, char delimiter){ vector<stringw> internal; std::string tok; std::string std_s(str.c_str(), str.size()); while (getline(std_s, tok, delimiter)) { internal.push_back(tok); } return internal; }
however errors here are: str.c_str()
says no instance of constructor "std::basic::string matches argument list. argument types (const wchar_t*, irr:u32)
on getline
method error: no instance of overloaded function "getline" matches argument list. argument types are: (std::string, std::string, char).
i have been trying hours number of ways split stringw
@ delimiter of ";" (semi colon) nothing working. advice?
there 2 main issues here, first stringw
string of wchar_t
characters. need use std::wstring
facilities avoid having convert wchar_t
to/from char
.
we need note std::getline
requires type derived std::basic_istream
it's first argument. can therefore modify code follows:
vector<stringw> split( stringw str, wchar_t delimiter ) { vector<stringw> internal; std::wstring tok; std::wistringstream std_s( str.c_str() ); while( getline(std_s, tok, delimiter) ) { internal.push_back(tok); } return internal; }
Comments
Post a Comment