Mega Code Archive

 
Categories / C++ Tutorial / Development
 

Process the name of the locale and read input

/* The following code example is taken from the book  * "The C++ Standard Library - A Tutorial and Reference"  * by Nicolai M. Josuttis, Addison-Wesley, 1999  *  * (C) Copyright Nicolai M. Josuttis 1999.  * Permission to copy, use, modify, sell and distribute this software  * is granted provided this copyright notice appears in all copies.  * This software is provided "as is" without express or implied  * warranty, and with no claim as to its suitability for any purpose.  */ #include <iostream> #include <locale> #include <string> #include <cstdlib> using namespace std; int main() {     // create the default locale from the user's environment     locale langLocale("");     // and assign it to the standard ouput channel     cout.imbue(langLocale);     // process the name of the locale     bool isGerman;     if (langLocale.name() == "de_DE" ||         langLocale.name() == "de" ||         langLocale.name() == "german") {           isGerman = true;     }     else {           isGerman = false;     }     // read locale for the input     if (isGerman) {         cout << "Sprachumgebung fuer Eingaben: ";     }     else {         cout << "Locale for input: ";     }     string s;     cin >> s;     if (!cin) {         if (isGerman) {             cerr << "FEHLER beim Einlesen der Sprachumgebung"                  << endl;         }         else {             cerr << "ERROR while reading the locale" << endl;         }         return EXIT_FAILURE;     }     locale cinLocale(s.c_str());     // and assign it to the standard input channel     cin.imbue(cinLocale);     // read and output floating-point values in a loop     double value;     while (cin >> value) {         cout << value << endl;     } } Locale for input: US This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.