Wie kann ich zeilenweise eine Textdatei in den Speicher einlesen?



  • 1. bool nameGefunden==false;
    2. Name eingeben (mit cin)
    3. Datei öffnen (mit ifstream)
    4. while-Schleife: solange die Datei nicht am Ende ist (datei.eof ()!=0) und nameGefunden==false
    4.1. Zeile aus Datei auslesen (string zeile; datei>>zeile;)
    4.2. Zeile auseinanderschnippeln, so daß Du ID, Anrede und Name als jeweils eigene Stringvariable hast
    4.3. Wenn der eingegebene Name gleich der Name aus dem String ist:
    4.3.1. Anrede ausgeben (bzw.: wenn Geschlecht gleich männlich, dann Ausgabe "Herr", ansonsten "Frau")
    4.3.2. nameGefunden=true
    5. datei.close ();

    Die Variante find ich ziemlich gut, aber da weiß ich auch nicht, wie ich anfangen soll, bzw, was ich mit den Angaben machen soll 😞 , vorallem hab noch bis Freitag zeit 😮



  • Hier mal ein Ansatz, ich glaub dein Problem ist es die Codefetzen hier zu verstehen und in dein Programm einzuarbeiten:

    #include <fstream>
    #include <iostream>
    
    int main() 
    {
      std::ifstream in( "deine_datei.endung" );
    
      if( !in )
      {
         std::cout << "Konnte die Datei nicht öffnen!";
         return 1;
      }
    
      int zeile;
      String geschlecht;
      String name;
    
      while( in >> zeile >> geschlecht >> name )
      {
        std::cout << zeile << " " << geschlecht << " " << name << "\n";
      }
    }
    

    Ich denke die Variablennamen sprechen für sich und wie man zwei Strings vergleicht weißt du ja, den Vergleich innerhalb der Einlese-While-Schleife bleibt dir also als Übung überlassen.



  • Hey vielen Dank, aber das check ich genauso wenig wie alles andere 😃 ,
    langsam fass ich mir aufn Kopf lol


Anmelden zum Antworten