txt file lesen und schreiben in einem Schwung



  • Hi,

    ich versuche eine txt-File in einem Schwung zu lesen und zu manipulieren.
    Mein Ziel ist es, zu prüfen ob das Zeichen in einem Array vorhanden ist, und wenn ja, mit dem Zeichen aus einem anderen Array an der gefundenen Position auszutauschen. Er scheint das auch ordentlich zu durchlaufen und die entsprechende Anzahl an Matches kann ich feststellen, dennoch schreibt er mir die Änderungen nicht in die Datei.

    void Inputfile::decryptFile(string filename)
    {
        for(int i=0;i<15;i++)
        {
            fstream filedest(filename.c_str(), ios::in | ios::out);
            if(!filedest)
                cerr << "Konnte Zieldatei nicht oeffnen!\n";
            else 
                cout << endl << filename << " geoeffnet zum entschluesseln!\n";
    
            while(!filedest.eof())
            {
                filedest.get(ch);
                if(ch == char(this->mostcharsencrypted[i]))
                {
                    filedest.put(char(this->mostchars[i]));
                }
    
            }
            filedest.close();
            cout << "Fertig!";
        }
    }
    

    Hat jemand eine Idee was ich hier falsch mache?



  • Hey, also erst mal finde ich deine ch Variable gar nicht, zweitens würde ich persönlich lieber mit std::string arbeiten aber ok. Und außerdem würde ich nicht die C-Casts nehmen( vorausgesetzt ich will C++ schreiben ) sondern die C++-Casts ala static_cast.
    Und !filedest.eof() ist auch nicht so gut, was machst du wenn ein anderer Fehler auftritt? Dann bist in einer Endlosschleife. Dazu war auch erst gestern oder heute in einem anderen Thread etwas zu lesen.
    http://www.c-plusplus.net/forum/284324

    Lg freeG


Anmelden zum Antworten