Textdatei kopieren und formatieren



  • Statt die Zeichen einzeln in der for-Schleife zu schreiben, kannst du auch gleich den gesamten String angeben.
    Für dein zweites Problem, schau dir mal die Methoden insert und find von String an. Damit kannst du einfach das Zeichen suchen und ein Zeilenumbruch danach einfügen lassen. Die folgenden Zeichen rücken dabei um eins nach hinten. Das müsstest du machen, bevor du den String mit write schreibst.



  • vankitz schrieb:

    ifstream has no member named "write"

    Das i steht ja auch für Eingabe, was du willst ist aber eine Ausgabe (ofstream).



  • Den eigentlichen Fehler habe ich übersehen:

    ifstream file,file2;
    

    ifstream heisst: Input Stream (Eingabestrom)
    ofstream heisst: Output Stream (Ausgabestrom)
    fstream kombiniert beide.

    Wenn du in die eine Datei schreiben willst, musst du dafür den ofstream verwenden.



  • demnach würde das dann so aussehen:

    int main(int argc, char *argv[])
    {
        string   filename, filename2;
        ifstream file;
        ofstream file2;
        getline(cin,filename);
    ...
    

    bin ich auf der richtigen spur?



  • spitze:) danke für eure hilfe



  • hm, irgendwas funktioniert jetzt nicht mehr.

    hab ja die änderungen vorgenommen, nur bekomm ich jetzt eine fehler meldung bei "file.open..." hab schon alles mögliche versucht, aber ohne glück:(

    int main()
    {
        string   filename, filename2;
        ofstream file2;
        char     zeile[1024], zeile2[1024]; 
        string inhalt="";
    
        // Dateinamen einlesen
        cout << "Dateinamen eingeben: " << flush;
        getline(cin,filename);
    
        // Datei öffnen
        ifstream file;
        file.open(filename,ios_base::in);
    

    egal in welchem tutorial ich nachsehe, das öffnen von textdateien wird so gehandhabt... aber irgendwo muss der hund doch begraben sein...
    lg



  • vankitz schrieb:

    hab ja die änderungen vorgenommen, nur bekomm ich jetzt eine fehler meldung bei "file.open..."

    Es würde wirklich helfen, wenn du in Zukunft nicht nur sagst, dass du eine Fehlermeldung bekommst, sondern diese auch postest. Sonst muss man immer erst raten, was denn falsch sein könnte, anstatt sich an der Meldung zu orientieren. 🙂



  • ifstream::open nimmt keinen std::string als erstes Argument sondern einen C-String.
    http://www.cplusplus.com/reference/iostream/ifstream/open/
    Also:

    file.open(filename.c_str(),ios_base::in);
    

    edit: Du bist ja immernoch mit char-arrays zu Gange. 😛



  • auweh... jo mir raucht der kopf auch, könnt ihr mir glauben...
    aber es wird wahrscheinlich wieder ein c vs c++ problem sein...ich schau noch mal alles durch
    danke für den hinweis:)



  • bzw danke für die antwort, aber bin schon ganz verwirrt heute
    wünsch euch einen schönen abend:)


Anmelden zum Antworten