Text Datei schreiben...Problem



  • Hallo Leute ich bins wieder ^^

    Diesmal habe ich bisschen mit Dateien rumexperimentiert und habe folgendes Problem. Ich habe ein Programm in c++ geschrieben das den user nach zwei eingaben fragt. Die erste eingabe bestimmt den namen der text datei. Und die zweite eingabe sagt dem Programm was es in die Text Datei schreiben soll. Also ganz einfach eigentlich ^^
    hier der code erstmal :

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    char textname [255];
    char DateiEingabe [255];
    
    int main () {
      ofstream myfile;
      cout << "Bitte geben sie den Namen der Datei ein.\n";
      cin >> textname;
      myfile.open (textname);
      cout << "Was soll in die Datei geschrieben werden?\n";
      cin >> DateiEingabe;
      myfile << DateiEingabe;
      myfile.close();
      cout << "OK ... Alles wurde erflogreich erledigt\n";
      return 0;
    }
    

    aber wenn ich das programm starte, geht alles erstmal gut, es geht alles wie ich es mir vorgestellt habe. Sagen wir mal ich habe als Text "hallo wie gehts" reingeschrieben. Aber dann schau ich in die Text Datei die erstellt wurde und da steht nur "hallo" anstatt "hallo wie gehts" . Mir kommt es so vor als könnte es leerzeichen nicht leiden ^^ Aber wenn ich anstatt Eingabeforderung einfach eine vordefinierten string einfüge geht alles :

    myfile << DateiEingabe;
    

    wenn dieser so aussieht:

    myfile << "hallo wie gehts";
    

    dann klappt alles, der fügt diesen ganzen string da rein.

    Kann mir einer sagen wie ich dieses problem beheben kann ?

    Danke schonmal... :p



  • Mach mal statt
    cin >> DateiEingabe;
    getline(cin,DateiEingabe);
    dann sollte es gehen.



  • Hmmm, der sagt mir

    error C2065: 'getline' : nichtdeklarierter Bezeichner
    

    kann es sein das ich noch irgendwas includen muss ?



  • Richtig, dir fehlt noch #include <string> und du mußt natürlich aus DateiEingabe auch ein string machen.



  • OH danke, hat alles geklappt ohne Error. Aber jetzt ist noch ein problem aufgetaucht. Diesmal wird garnichts in dir Text datei geschrieben 😃

    hier nochmal der vollständige code:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    char textname [255];
    string DateiEingabe;
    
    int main () {
      ofstream myfile;
      cout << "Bitte geben sie den Namen der Datei ein.\n";
      cin >> textname;
      myfile.open (textname);
      cout << "Was soll in die Datei geschrieben werden?\n";
      getline(cin,DateiEingabe);
      myfile << DateiEingabe;
      myfile.close();
      cout << "OK ... Alles wurde erflogreich erledigt\n";
      return 0;
    }
    

    hilfe!!! ^^ ICh hoffe mal ich habe das mit string richtig gemacht 😛



  • Geh doch mal mit dem Debugger durch.
    Ist myfile geöffnet? Was steht in DateiEingabe?



  • setz doch mal vor das getline ein "cin.ignore(100,'\n');" - damit werden die Reste der ersten Eingabe aus dem Tastaturpuffer gekehrt.
    (oder du holst dir den Dateinamen auch per getline())


Anmelden zum Antworten