in Datei einlesen



  • Hallo !
    Ich mache grad meine ersten Erfahrungen mit dem Ein- und Auslesen von Dateien in C++. Kann mir einer sagen warum folgendes nicht funktioniert ?

    #include <fstream.h>
    
    int main ()
    {
    	ofstream datei("c:\borland\datei.txt");
    	for(int i=1;i<=10;++i)
    	{
    		datei<<i;
    	}
    
    return 0;
    }
    

    Das Programm legt noch nicht mal die datei.txt an, auch wenn ich datei.open("c:\borland\datei.txt"); verwende.



  • Hi,
    bestimmt kommst du einen schritt weiter wenn du die datei öffnest .... open()

    CU und viel Spass noch



  • Also der Konstruktor des ofstreams öffnet die Datei soweit ich weiss selbst. Ein explizites open() bringt da keine Punkte.

    Aber eine Frage an den Unregistrierten: Kommen Fehlermeldungen? Wenn ja welche?

    Ansonsten würde ich mal vermuten, dass es an den \ liegt. Ersetz mal alle \ duch ein \\ und versuchs nochmal.
    Also

    ofstream datei("c:\\borland\\datei.txt");
    


  • so ein schwachsinn. der ctor oeffnet die datei schon. ersetz mal die \ gegen /.



  • Wenn du statt

    #include <fstream.h>
    

    noch

    #include <fstream>
    using namespace std;
    

    schreibst, dann ist das auch ein sauberes C++ Programm, denn der C++ Standard kennt keine Header mit der Dateiendung .h

    Mfg, smasher1985



  • Danke an alle die geantwortet haben.
    Mit \\ statt \ gehts. Ob datei.open(); oder nicht macht keinen Unterschied. Also nochmals danke ! ciao



  • nur mal um das zu klähren:
    Wenn irgendwo in einer zeichenkette (z.B. dem CTor von Ofstream) ein Backslash vorkommt, also ein '\' dann MUSS ER DOPPELT sein! Ansonnsten bedeutet ein '\' die einleitung einer ESCAPESEQUENZ, was in diesem fall quatsch ist.
    Und da der Compiler mit '\b' und '\d' nichts anfangen kann ignoriert er diese!

    //BSP:
    ofstream Falsch("C:\falsch.txt");
    ofstream Richtig("C:\\richtig.txt");
    

    Wer es besser weis möge mich verbessern.



  • '\b' ist ein Backspace 🙂



  • Bashar schrieb:

    '\b' ist ein Backspace 🙂

    Noch schlimmer! 😃
    Kenn die halt nit alle auswendig 😉
    Im Kontent dürfte es den Kompiler jedenfalls in arge schwierigkeiten bringen, da er keine ahnung hat was er machen soll, bzw. irgendwo anfängt und dabei später nur müll herauskommt.


Anmelden zum Antworten