Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Stream kommt mit Eurozeichen nicht klar

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.04.2008, 10:39 Uhr
~Osbi
Gast


hallo,

habe hier eine Ausgabedatei in der ich allerlei informationen aus einem std::wstring reinfeuere. Sobald aber ein sonderzeichen, oder zumindest ein € zeichen kommt, bricht der Datenstrom ab. die letze information die in der datei ankommt, ist das zeichen vor dem €-zeichen.

nehme ich das euro zeichen heraus, klappt es wunderbar. die datei bleibt allerdings geöffnet, nachdem das euro zeichen empfangen wurde. das programm läuft ganz normal weiter, schreibt blos nichts mehr in die datei

wie kann ich das lösen bzw. abstellen


C++:
    std::list<FileInfo>::iterator it;
    std::wofstream outfile(filePath.c_str(), std::ios::binary);
    if (outfile.is_open())
        for(it = li.begin(); it != li.end(); it++)
        {
            outfile<<it->getFilePath().c_str()<<L";"
                   <<it->getFileName().c_str()<<L";"
                   <<it->getTitelText().c_str()<<L";"
                   <<it->getDocTyp().c_str()
                   <<L";\n";
        }



Ich arbeite mit Visual C++ 2005 und hab das Projekt auf Unicode gestellt(falls das hilft).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.04.2008, 10:56 Uhr
~Osbi
Gast


wenn ich das eurozeichen als unicode-kommando darstelle \u20AC crahst der stream nicht. Allerdings hab ich probleme bei einem std::wstring das eurozeichen als unicode sequezn rein zu bekommen.


C++:
std::wstring s = L"Hallo";
s += L"\u20AC";
std::wofstream out("C:/out.dat",std::ios::binary);
out<<s.c_str();



wird zwar kompiliert, dann kommt das eurozeichen aber nicht in der datei an, sondern nur irgendein hex code


Mit einem normalen string scheint es zu klappen

C++:
std::string s = "Hallo";
s += "\u20AC";
std::ofstream out("C:/out.dat",std::ios::binary);
out<<s.c_str();



mein programm jetzt auf std::string zu ändern, zieht aber einen unschönen rattenschwanz nach sich, deswegen wäre es gut wenn ich dem std::wstring in kombination mit dem wofstream beibringen könnte die unicode-sequenz richtig zu verstehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: