Absturz beim Einlesen aus einem wifstream
-
Hallo,
ich habe ein Problem beim Einlesen einer UTF-8-kodierten Datei. Hier der destillierte Code:#include <fstream> #include <iostream> using namespace std; int main() { wifstream f; f.open ("funnychars.ini", wifstream::in); wstring wstr; while(getline(f, wstr)) wcout << wstr << endl; f.close(); return 0; }Bei dem oberen Code geht er nie in die Schleife hinein, obwohl open funktioniert hat und die Datei nicht leer ist.
Wenn ich es alternativ so wie folgt loesen wollte, bekomme ich einen SIGABRT. Ich verwende gcc unter Linux (Ubuntu).
#include <fstream> #include <iostream> using namespace std; int main() { wifstream f; f.open ("funnychars.ini", wifstream::in); wstring wstr; wchar_t wc, dummy; while(f >> wc) { // <-- beim 1. Leseversuch stuerzt er ab f >> dummy; f >> wstr; wcout << wstr << endl; } f.close(); return 0; }Die Datei funnychars.ini schaut so aus:
Ä Adieresis Ö Odieresis Ü Udieresis ä adieresis ö odieresis ü udieresis ß germandbls <... etc... >Was mache ich falsch ?? Bitte um Hilfe.