Merkwürdigkeiten bei STL::MAP -Erklärung und Hilfe benötigt :)
-
queer_boy schrieb:
nur so nebenbei: locale besitzt selbst einen operator(), der genau dafür gedacht ist.
map<string,string,std::locale> localized_map(std::locale("de_DE.UTF-8"));also ich hab das bei mir eingebaut und ich vermute das "de_DE.UTF-8" nicht bei mir existiert.. hab hier ein "deutsches XP" laufen..mit Visual 2005 express (german)als Entwicklungsumgebung. was funktioniert ist
map<string,string,locale> localized_map;ohne (std::locale("de_DE.UTF-8")); <<< wenn ich das einfüge gibs ein runtimeerror mit dem tollen hinweis: "This application has requested the Runtime to terminate it in an unusual way. please contact the application´s support team for more informations. "<< hihi da bin ja dann wohl ich gemeint..
falls ichs weglasse dieses (std::locale("de_DE.UTF-8") sortiert der wieder stupide erst grossbuchstaben dann klein.. nun da es wohl schwierig ist ein std: möglichkeit zu finden muss ich wohl oder übel selbst was bauen was die Umlaute richtig einsortiert. irgend ne billig switch case in der art
string result = str; for (size_t i=0; i < result.length(); i++) { result[i] = tolower(str[i]); switch(result[i]) { case 'ä': result[i] = 'a'; break;...
.. mal sehn ob ich das hinbekomm
-
unter windows heißt das locale vielleicht "German_Germany.1252" (brachte mir eine kurze suche mit google)
bleib mal bei map<string,string,locale> localized_map;
und probier mal am anfang deines program (in der main)locale::global(locale("")); //und lass dir den namen des locales ausgeben cout << "verwende nun " << locale().name() << endl;ich hab jetzt keinen standard bei mir, aber ich glaube nämlich, dass das globale locale standardmäßig auf das C (=en_US) locale gesetzt wird.