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.


Anmelden zum Antworten