kostenloser Webspace werbefrei: lima-city


.txt dokument lesen/schreiben

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    brainfactory-team

    brainfactory-team hat kostenlosen Webspace.

    Hallo,

    ich lerne gerade seit n bischern mehr als einem halben jahr c++ und kann grundlegendes schon.

    Ich wollte nun wissen wie ich in C++ einen string in ein .txt dokument speichern bzw laden kann.

    mfg brainfactory
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi

    schau dir das mal genauer an:

    #include <fstream.h>
    
    int main()
    {
    ofstream fout( "datei.txt" );
    fout << "Testtext";
    }


    Grüsse
    Color
  4. Autor dieses Themas

    brainfactory-team

    brainfactory-team hat kostenlosen Webspace.

    hmm wenn ich den include in
    #include <fstream>
    ändere dann funzt das, danke.

    wie kan nich jedoch jetzt das ganze wieder einlesen?
    mfg brainfactroy
  5. Im prinzip nur rückwärts^^
    "string" ist ein beliebiger stringtyp also ein std::string oder ein Char-Array.
    #include <fstream.h>
    
    int main()
    {
    ifstream fin( "datei.txt",  ifstream::in );
    fin >> string;
    }

    Das sollte eigentlich alles wissenswerte sein.
  6. Autor dieses Themas

    brainfactory-team

    brainfactory-team hat kostenlosen Webspace.

    hmm komisch, wenn ich das so mache, dann steht in dem String gar nichts drin

    hier mein Quellcode:

    #include "stdafx.h"
    #include <conio.h>
    #include <fstream>
    using namespace std;
    
    int main()
    {
    	char string[100];
    	ofstream fout("datei.txt");
    	fout << "lol";
    	getch();
    
    	ifstream fin("datei.txt", ifstream::in);
    	fin >> string;
    	printf("Das hier steht in dem TXT-Doukument: %s",string);
    	getch();
    }


    Ich weiss auch nich hab ich was falsch gemacht, oder funktioniert der Befehl gar nicht?

    Außerdem habe ich noch 2 fragen:

    Wie ist das eigentlich mit dem in textdokument schreiben, wenn ich z.b "hallo du kenne ich dich" drin stehen habe und ich dann nur "keine ahnung" hineinschreibe, steht dann da "keine ahnungnne ich dich" oder nur "keine ahnung"? ist ein textdokument auch 0-terminiert wie die strings in c++?


    Was mache ich wenn ich ein Txt-dokument lesen will welches sich z.b. in Ordner C:/Ordner/datei.txt befindet?
    Muss ich dann ganz einfach das
    ifstream fin("datei.txt", ifstream::in);
    in das ändern?
    ifstream fin("C:/Ordner/datei.txt", ifstream::in);


    mfg brainfactory

    edit:

    kann mir da niemand helfen?

    Beitrag zuletzt geändert: 2.4.2010 18:57:56 von brainfactory-team
  7. everydaynormalguy

    everydaynormalguy hat kostenlosen Webspace.

    Hi, solltest evtl auch was reinschreiben in deinen string:

    char string[100]; //erzeugt einen lehren string

    // in den niemals was geschrieben wird (zumindest in deinem Programm)

    :wink:


  8. everydaynormalguy schrieb:
    Hi, solltest evtl auch was reinschreiben in deinen string:

    char string[100]; //erzeugt einen lehren string

    // in den niemals was geschrieben wird (zumindest in deinem Programm)

    :wink:


    fin >> string;

    Was ist das dann bitte?

    Ich finde aber keinen Fehler.
    Steht denn lol in der Datei?

    Hast du es schon mit std::string probiert?

    Beitrag zuletzt geändert: 12.5.2010 14:07:53 von reimann
  9. everydaynormalguy

    everydaynormalguy hat kostenlosen Webspace.

    Hehe, stimmt fin is joa da (verzockt)

    probierma folgendes:

    // writing on a text file
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main () {
      ofstream myfile ("example.txt");
      if (myfile.is_open())
      {
        myfile << "This is a line.\n";
        myfile << "This is another line.\n";
        myfile.close();
      }
      else cout << "Unable to open file";
      return 0;
    }
    
    
    // reading a text file
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    int main () {
      string line;
      ifstream myfile ("example.txt");
      if (myfile.is_open())
      {
        while (! myfile.eof() )
        {
          getline (myfile,line);
          cout << line << endl;
        }
        myfile.close();
      }
    
      else cout << "Unable to open file"; 
    
      return 0;
    }


    mfg
  10. hi brainfactory-team,

    also zu deinem code kurz:
    so wie "everydaynormalguy" gesagt hat sollte es passen, ich denke das problem war dass du den stream nicht schließt, bzw nicht flushed ;)


    zu dem anderen:
    das kannst du mit diversen flags steuern die du in deiner ifstream instanz setzen musst.
    siehe: http://www.functionx.com/cpp/articles/filestreaming.htm

    die variante mit der absoluten addressierung sollte gehen, glaub ich.. probiers einfach aus, kostet ja nichts^^
    aber ich würde dir empfehlen die datein weiterhin relativ zu addressieren, da du sonst n problem bekommen könntest wenn dein program mal auf einem anderen system laufen soll ;)

    also lieber sowas in die richtung:
    ifstream in("../../blub");

    lg,
    aniz
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!