[STL] wstring und wcout verhalten sich merkwürdig.
Verfasst: 24.04.2009, 17:50
Hallo,
ich musste mein aktuelles Projekt für die Lokalisierung von std::string auf std::wstring umstellen. Das meiste hat auch gut geklappt nur 2 Stellen scheinen irgendwie nicht zu funktionieren.
Die ersten
gibt nichts aus, nichtmal ein newline. Schreibe ich anstelle von names direkt L"Bob" passiert auch nichts, schreibe ich nur "Bob" gibt er es brav aus.
Das nächste Problem hängt mit wostringstream zusammen
Ergebnis hier ist nur eine 0 Sprich der erste Fill Char, aber nicht mehr...
Auch verstehe ich nicht so ganz den unterschied zwischen .size() und .length() bei std::string bekomme ich so die länge vom String, aber bei den Name kommt nicht nachvollziehbares herraus bspw. für L"Bob" size = 40.
Betriebsystem ist MacOSX das ganze in XCode.
Kann mir jemand weiterhelfen?
Danke schonmal
Nico
ich musste mein aktuelles Projekt für die Lokalisierung von std::string auf std::wstring umstellen. Das meiste hat auch gut geklappt nur 2 Stellen scheinen irgendwie nicht zu funktionieren.
Die ersten
Code: Alles auswählen
std::vector<std::wstring> names;
names.push_back(L"Bob");
// ... noch mehr namen
for(int i = 0; i < names.size(); i++)
std::wcout << names[i] << std::endl;
Das nächste Problem hängt mit wostringstream zusammen
Code: Alles auswählen
std::wostringstream stream;
stream << std::setfill(L'0') << std::setw(2) << (i + 1) << L" " << names[i]; // Ergebnis sollte sowas sein wie "01 Bob"
// mach was mit stream.str()
stream.str(L"");
Auch verstehe ich nicht so ganz den unterschied zwischen .size() und .length() bei std::string bekomme ich so die länge vom String, aber bei den Name kommt nicht nachvollziehbares herraus bspw. für L"Bob" size = 40.
Betriebsystem ist MacOSX das ganze in XCode.
Kann mir jemand weiterhelfen?
Danke schonmal
Nico