[C/C++] Dateiausgabe mit Sonderzeichen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von thecoolman4rr, 4. Oktober 2006 .

Schlagworte:
  1. 4. Oktober 2006
    Dateiausgabe mit Sonderzeichen

    Moinsens...
    tja ich wollte mir nen kleines Taggprogramm schreiben... leichter gesagt als getan...
    denn nun habe ich ein Problem, nämlich mit den Sonderzeichen ich wollte gerne die Pfade mit "ÿ" versehen. Zuerst hatte ich vor einfach am Ende den ganzen Taggbefehl in der Konsole auszugeben so das ich dann nur noch das ganze kopieren und als neuen befehl bei fxp hinzufügen muss. Nach kurzem probieren ist mir dann aufgefallen das man die "ÿ" in der konsole nicht darstellen lassen kann.
    OK dacht ich, speicher ich das ganze einfach in eine Datei... probiere aus... mit "ÿ" klappt wunderbar.
    Nun wollte ich aber natürlich nicht die ganze Datei nur mit "ÿ" vollschreiben sondern natürlich auch z.B. mit "mkd". Mein Problem ist nun, dass ich sobald ich etwas zu der Datei in der die "ÿ" bereits stehen hinzuschreiben will, sich alles nur noch in Kästchen verwandelt!
    hier der Code dazu...
    Code:
    #include <iostream>
    #include <fstream>
    
    int main(void)
    {
     // probe
     char c_mkd[4] = "mkd";
     ofstream RausGehts ("test.txt", ios::binary|ios::app);
     char c_ypunkte[2] = "ÿ";
     RausGehts << c_ypunkte;
     RausGehts.close(); // bis hierhin funktioniert es und die datei hat tatsächlich nur ein ÿ in sich..
     ofstream RausGehts2 ("test.txt", ios::app|ios::binary);
     RausGehts2 << c_mkd; // hier gehts dann irgentwo schief!? nur warum??
     RausGehts2.close();
     cout << c_ypunkte << c_mkd;
     cin >> c_ypunkte; // nur dazugedacht damit das Fenster nicht direkt wieder zu geht...
     return 0;
    }
    
    Ich vermute, dass es daran liegt, dass die Datei solange sie nur das "ÿ" in sich hat, binär gespeichert wird und deshalb das "mkd" auch binär gespeichert wird!
    Nur wie bekomme ich das anders hin??

    Ich hoffe auf konstruktive Antworten...

    mfg thecoolman4rr


    *+~edit~+*
    mir ist grad aufgefallen das ich das ios::binary noch dringelassen habe... es ist im prinzip wurscht ob ich das reinmache oder nicht das hab ich nur zum testen reingemacht... funktionieren tut es weder mit noch ohne..
    Code:
    #include <iostream>
    #include <fstream>
    
    int main(void)
    {
     // probe
     char c_mkd[4] = "mkd";
     ofstream RausGehts ("test.txt", ios::app);
     char c_ypunkte[2] = "ÿ";
     RausGehts << c_ypunkte;
     RausGehts.close(); // bis hierhin funktioniert es und die datei hat tatsächlich nur ein ÿ in sich..
     ofstream RausGehts2 ("test.txt", ios::app);
     RausGehts2 << c_mkd; // hier gehts dann irgentwo schief!? nur warum??
     RausGehts2.close();
     cout << c_ypunkte << c_mkd;
     cin >> c_ypunkte; // nur dazugedacht damit das Fenster nicht direkt wieder zu geht...
     return 0;
    }
    
     
  2. 4. Oktober 2006
    AW: Dateiausgabe mit Sonderzeichen

    Wenn du die sachen versucht in der Konsole auszugeben, schnap pdir ne ASCII-Tabelle und gib die zeichen Hexadezimal aus, das müsste funktionieren.

    MfG
    FlowFlo
     
  3. 4. Oktober 2006
    AW: Dateiausgabe mit Sonderzeichen

    lol ich hab ganz ehrlichgesagt immer noch nicht das prinzip verstanden...
    ABER sobald ich einmal das "ÿ" als "\377" reinschreiben lasse funktioniert es!? ich verstehe zwar den Sinn nicht aber egal...
    Sobald dann einmal die Datei einmal dieses "\377" (was als "ÿ" dargestellt wird) beinhaltet, lässt sich auch problemlos ein weiteres "ÿ" anhängen mit der oben gezeigten Methode... allerdings nur ANHÄNGEN nicht ersetzen! Sobald ich versuche die Datei neuzuschreiben kommt wieder der selbe Mist wie am Anfang!
    Ich vermute, dass die Datei wenn sie nicht vorhanden ist einfach als binärdatei gespeichert wird, doch sobald sie schon als nichtbinär dateivorhanden ist wird sie auch in diesem nichtbinärenformat weitergeschrieben!?
    wenn irgent jemand darüber mehr weiß/ eine Regel hat oder so bitte sagen *G

    mfg thecoolman4rr

    *+~edit~+*
    wieder ne neuerung ^^
    Wenn man die "Kästchendateien" mit dem Editor anschaut kommen nur Kästchen... mit WordPad allerdings kommt wieder das richtige!?
     
  4. 5. Oktober 2006
    AW: Dateiausgabe mit Sonderzeichen

    Des sollte aber am Texteditor liegen.

    aber versuch dess ganze doch mal mit fopen(); und so

    Gruß

    Hamml
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.