C ++ Fehler "Fehler: locale :: facet :: _ S_create_c_locale name ungültig" beim Ausführen des Programms über die Befehlszeile

Ich habe anscheinend ein Problem mit Gebietsschemas in C ++. Wenn ich mein Programm in Eclipse ausführe, funktioniert alles einwandfrei. Wenn ich jedoch versuche, von der Befehlszeile aus zu starten, erhalte ich immer wieder den folgenden Fehler:

Fehler: locale :: facet :: _ S_create_c_locale Name nicht gültig

Dies ist der Code, der den Fehler auslöst:

// Set up UTF8 file stream
string fileName = "./sz.txt";
wifstream inFileStream;

try {
    setlocale(LC_ALL, "");
    inFileStream.open(fileName.c_str());
    inFileStream.imbue(locale(""));
    if(!inFileStream) {
    return EXIT_FAILURE;
    }
}
catch (const std::exception &exc) {
    wcout << "Error while trying to create UTF8 file stream." << endl;
    std::cerr << exc.what() << endl;
    if( inFileStream.is_open() )
        inFileStream.close();

    return EXIT_FAILURE;
}

Die Ausgabe von "locale" ergibt folgendes:

LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"

Ich habe auch versucht, "de_DE.UTF-8" als Gebietsschema-Zeichenfolge anstelle von "" (wie es eigentlich sein sollte) zu verwenden, aber dies gibt mir den gleichen Fehler.

Und seltsamerweise funktioniert das Programm einwandfrei, wenn es in Eclipse ausgeführt wird. Ich verwende g ++, um von der Befehlszeile mit der folgenden Version zu kompilieren:

Konfiguriert mit: --prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / usr / include / c ++ / 4.2.1 Apple LLVM Version 5.0 (clang-500.2.79) (basierend auf LLVM 3.3svn) Ziel: x86_64-apple-darwin12.4.0 Thread-Modell: posix

Irgendeine Idee, was hier falsch sein könnte?

Prost,

Martin

Antworten auf die Frage(1)

Ihre Antwort auf die Frage