Sonderzeichen mit fputs oder fputc in Datei schr.

Von: , Frage gestellt am Mo, 21. Mai 2001

Hallo zusammen

eigentlich habe ich gar nichts kompliziertes vor. Ich will nur ASCII Zeichen in eine Datei schreiben. Das klappt auch wunderbar bis auf eine kleine Ausnahme, wenn ich ein Sonderzeichen schreiben will.

Ich brauche in der Datei folgende Zeichenfolge: b<Sonderzeichen >b. Wobei <Sonderzeichen> für das Zeichen steht, das in einem Hexeditor mit 0a angezeigt wird.

Wenn ich nun folgendes mache:

char sp[4] ;

sp[0] = 0x62; //'b'
sp[1] = 0xa;
sp[2] = 0x62; //'b'
sp[3] = '\0';

fputs(sp, Datei);

dann kommt in der Datei nicht 62 0a 62 an sondern 62 0d 0a 62. Das stinkt mir ganz gewaltig!!! Im Textmodus des Editors wird 0d 0a als Zeilenumbruch interpretiert. Ich brauch aber unbedingt 0a zwischen den 62 bzw 'b'.

Wie kann ich das bewerkstelligen???

Ich bin dankbar für jeden Vorschlag.

Albert

4 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Sonderzeichen mit fputs oder fputc in Datei sc

    Hi Albert :) Wenn ich nun folgendes mache:

    char sp[4] ;

    sp[0] = 0x62; //'b'
    sp[1] = 0xa;
    sp[2] = 0x62; //'b'
    sp[3] = '\0';

    fputs(sp, Datei);

    dann kommt in der Datei nicht 62 0a 62 an sondern 62 0d 0a 62.
    Ja, das liegt daran, dass du deine Datei als Textdatei ausgibst. Unter Windows besteht das Ende einer Datei aus NewLine "\n" und CarriageReturn "\r". Das sind die ASCII-Codes 0D und 0A. Wenn du nur eins von beiden ausgibst, dann ergänzt fputs() automatisch zur korrekten Folge 0D 0A. Wie kann ich das bewerkstelligen???
    Du musst die Datei als Binärdatei schreiben:

    FILE *file= fopen("egal.88","wb");   //wirte binary
    fwrite (sp, 1, strlen(sp), file);
    

    Das sollte klappen :)))

    Viele Grüße

    Stefan.

    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: Sonderzeichen mit fputs oder fputc in Datei

      Du musst die Datei als Binärdatei schreiben:

      FILE *file= fopen("egal.88","wb");   //wirte binary
      fwrite (sp, 1, strlen(sp), file);
      

      Das sollte klappen :)))

      Vielen Dank für die Antwort. Klappt aber leider nicht. Ich werd hier noch wahnsinnig....

      • Antwort von nach 5 Stunden 0 hilfreich
        Re^3: Sonderzeichen mit fputs oder fputc in Datei

        Hi Albert :)

        Wie, das klappt nicht? Zeig doch mal bitte ein bisschen mehr von deinem Source :)))

        cu Stefan.

        • Antwort von nach 16 Stunden 0 hilfreich
          Re^4: Sonderzeichen mit fputs oder fputc in Datei

          Hi Stefan,

          ich weiß nicht was ich gestern abend noch falsch gemacht habe. Auf jeden Fall funzts heute morgen mit fwrite so wie Du gesagt hast.

          Vielen Dank.
          Albert [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!