1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

TXT Datei einlesen

Dieses Thema im Forum "C/C++" wurde erstellt von ReemE, 6. Juli 2002.

  1. ReemE

    ReemE Grünschnabel

    wie kann ich innerhalb einer Konsolen Anwendung bei c++ eine TXT Datei auslesen, die Ich vorher bestimmen kann ...

    D.h ich will vorher ein Input machen, indem man den Pfad der Datei eingibt, die dann später ausgelesen werden soll ...

    bekomm das aber nich hin .. :(
    thx
  2. Dario Linsky

    Dario Linsky Grünschnabel

    meinst du sowas hier:

    Code (Text):
    1.  
    2. #include <iostream>
    3. #include <fstream>
    4.  
    5. using namespace std;
    6.  
    7. int main(int argc, char *argv[])
    8. {
    9.     char     filename[128];
    10.     ifstream file;
    11.     char     zeile[1024];
    12.  
    13.     // Dateinamen einlesen
    14.     cout << "Dateinamen eingeben: " << flush;
    15.     cin.getline(filename, 127);
    16.  
    17.     // Datei öffnen
    18.     file.open(filename, ios::in);
    19.  
    20.     if (file.good())
    21.     {
    22.         // Wenn die Datei geoeffnet werden konnte...
    23.  
    24.         // An den Anfang der Datei springen
    25.         file.seekg(0L, ios::beg);
    26.  
    27.         while (! file.eof())
    28.         {
    29.             // Die Datei zeilenweise auslesen
    30.             file.getline(zeile, 1024);
    31.             cout << zeile << endl;
    32.         }
    33.     }
    34.     else
    35.     {
    36.         // Wenn die Datei nicht geoeffnet werden konnte,
    37.         // aus welchen Gruenden auch immer...
    38.         cout << "Datei nicht gefunden." << endl;
    39.     }
    40.  
    41.     return 0;
    42. }
    43.  
  3. ReemE

    ReemE Grünschnabel

    das angegebene kann leider nur TXT dateien, die 1 eine zeile enthalten ...

    ;(
  4. Dario Linsky

    Dario Linsky Grünschnabel

    dass das nur mit einzeilern funktioniert, ist teilweise richtig.
    eine möglichkeit wäre es eben, dass du in einer schleife jede zeile ausliest und an eine weitere variable anhängst.

    da gibt's aber sicher auch eine bessere möglichkeit, mit der man die ganze datei einlesen kann.
    oder du verzichtest auf objektorientierung und machst das mit normalem c, indem du jedes einzelne zeichen einliest und an eine variable anhängst.
  5. ReemE

    ReemE Grünschnabel

    nope, das will ich nicht ....

    Das mit der schleife is schon ne gute idee..
    aber wo muss ich die ansetzen ???
  6. Vitalis

    Vitalis Erfahrenes Mitglied

    Hmmm, schau mal hier
  7. ReemE

    ReemE Grünschnabel

    hmm, kann das nich lesen, is so klein gedruckt .. naja ..
    is ja nich schlimm ...
  8. Vitalis

    Vitalis Erfahrenes Mitglied

    :mad: dann nicht.
  9. Dario Linsky

    Dario Linsky Grünschnabel

    bei allem respekt, aber das ist doch nun wirklich etwas sehr albern, oder?
    das ist ein pdf. und wie wir alle wissen kann man im acrobat reader zoomen. oder stell deine auflösung runter. oder druck es aus und lies es auf papier. :rolleyes:
  10. Guntpat1981

    Guntpat1981 Grünschnabel

    Also wirklich! ;-]
  11. Warum denn

    Warum denn Gast

    Halloa!
    Also man kann sehr unkompliziert eine ganze Datei auslesen. Allerdings dann nicht mehr so gezielt, wie mit der oben beschriebenen Methode:

    #include <fstream>
    #include <iostream>
    using namespace std;

    void main()
    {
    ofstream out("witz.txt");
    out<<"Es kommt ein Mann zum Baecker und sagt: Ich moechte 99 Broetchen."<<endl;
    out<<"Da fragt der Baecker: Duerfen es auch 100 sein?"<<endl;
    out<<"Der Mann antwortet: Nein, wer koennte denn so viele essen?"<<endl;


    ifstream in("witz.txt");
    while(in.eof()!=true) //eof gibt an, wann die txt fertig ausgelesen ist
    {
    char ch;
    ch=in.get();
    cout<<ch;
    };

    cin.get();
    };

    Grüße!
  12. Matthias Reitinger

    Matthias Reitinger ɐɯıǝɹ Premium-User

    Es sei denn es tritt vorher ein Eingabefehler auf, dann wird die Bedingung nie erfüllt und man erhält eine Endlosschleife. Darum sollte man eine solche Abfrage nie verwenden. Besser und einfacher:
    Code (C++):
    1. while (in)
    Die einfachste Möglichkeit, eine gesamte Datei einzulesen und auf der Standardausgabe auszugeben, wurde allerdings noch nicht genannt:
    Code (C++):
    1. #include <algorithm>
    2. #include <fstream>
    3. #include <iostream>
    4. #include <iterator>
    5.  
    6. using namespace std;
    7.  
    8. int main(void) {
    9.   ifstream in("witz.txt");
    10.   copy(istreambuf_iterator<char>(in),
    11.        istreambuf_iterator<char>(),
    12.        ostreambuf_iterator<char>(cout));
    13.   return EXIT_SUCCESS;
    14. }
    Grüße,
    Matthias
    Zuletzt von einem Moderator bearbeitet: 23. Mai 2014

Diese Seite empfehlen