Datei mit Sonderzeichen einlesen

  • C/C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datei mit Sonderzeichen einlesen

    Hi,
    ich möchte eine Datei einlesen - mit allen Zeichen.
    Das funktioniert auch einbandfrei, nur endet es immer bei dem selben Zeichen (im ANSI Code ein kleiner Pfeil nach rechts).
    Das passiert allerdings nur, wenn ich das Dateiende mit Input.eof() überprüfe.
    Wenn ich dagegen einfach nur 500 Zeichen einlese, sind alle Zeichen nach dem Problemzeichen nur Leerzeichen.
    Warum??

    P.S. das Problemzeichen selber wird nicht mehr angezeigt



    EDIT: Uff, ich hab ein rosaneres :D Pony bekommen!! - Ist das echt dauerhaft???

    EDIT²: Mist, funktioniert nicht... Mein Verwendungsziel ist mit normalen Funktionen nicht erreichbar und ich muss die Sache komplett angehen... Die Lösung für das Problem interresiert mich zwar noch, ist aber nicht mehr relevant. Trozdem danke falls mir jemand antworten wollte / will, vielleicht brauchs ich später nochmal.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Chaos Creator ()

  • Ich hab fstream verwendet - der Code dient zur Verschlüsselung von Dateien, hat aber noch keinen Verschlüsselungsalgorythmus:

    Quellcode

    1. #include <fstream>
    2. using namespace std;
    3. void main()
    4. {
    5. fstream Output("Output.exe", ios::out);
    6. fstream Input("Input.exe", ios::in);
    7. char a=0;
    8. bool ready = false;
    9. while(ready)
    10. {
    11. Input >> noskipws >> a;
    12. ready = Input.eof();
    13. Output << a;
    14. }
    15. }
    Alles anzeigen


    In welcher Form werden eigentlich Flags in den Dateien gespeichert?
  • Um möglichst nah an deiner Lösung zu bleiben empfehle ich:

    Quellcode

    1. #include <fstream>
    2. using namespace std;
    3. int main()
    4. {
    5. fstream Output ("Output.exe", ios::out | ios::binary);
    6. fstream Input ("Input.exe", ios::in | ios::binary);
    7. char a = 0;
    8. while(true)
    9. {
    10. Input.read (&a, 1);
    11. if (Input.eof ())
    12. break;
    13. Output.write (&a, 1);
    14. }
    15. Input.close ();
    16. Output.close ();
    17. return 0;
    18. }
    Alles anzeigen


    Da ich sehe dass du mit .exe Dateien arbeiten willst, empfehle ich eine binäre Verarbeitung der Dateien.

  • Benutzer online 1

    1 Besucher