aus daten einlesen...?



  • Hello @ all

    Ich hab folgende Frage: Ich hab in dem Ordner meines C++ Projektes eine Textdati namens "daten.txt". Zuvor wurden einige Daten vom Benutzer eingegeben und mittels ofstream eine Textdatei erzeugt, inder das steht:
    14FlorianNudelnMercedesTennis (es handelt sich hierbei um eine Art Visitenkarte von mir 😉 ).
    Jetzt meine Frage: Wie lese ich den Inhalt von "daten.txt" wieder ein?
    Ich weis jedenfalls schon, dass es irgendwie so geht:

    //...
         string dateiname = "daten.txt";
         //...
         ifstream dat_ein;
         dat_ein.open(dateiname.c_str(), ios::in);
         dat_ein>>dateiname;
    
         char inhalt[30];
         while(inhalt)
         {
             dat_ein>>inhalt;          //Oder irgendwie so, kann auch falsch sein
         }                             //Auf jeden Fall was mit while..
    
         //...
    

    Stimmt das so? Wie kann ich das so einlesen, das nach jedem Großbuchstaben angehalten wird?
    Ich hoffe ich habe die Frage verständlich gestellt.
    Schon mal im Voraus danke für Antworten.. 🙂

    Müllfanatiker



  • strtok würde helfen, wenn du sinnvollerweise ein Trennzeichen genommen hättest umd die Spalten voneinander zu trennen.



  • Zeichenweise einlesen, überprüfen ob Großbuchstabe, wenn ja Extrabehandlung, ansonsten weiter.

    Beispiel (Ungetestet)

    ...
    std::ifstream in("datei.txt"); // Am besten direkt im Ctor die Datei öffnen und
                                   // nicht erst mit der Methode open().
    if(in.is_open()) // Wenn Datei erfolgreich geöffnet wurde
    {
         char c;
         while(in.good()) // Solange keine Fehler auftreten
         {
              in.get(c);
              if(static_cast<int>(c) >= 65 && static_cast<int>(c) <= 90)  // Bin mir gerade nicht so sicher, in welchem Bereich
                                      // die ASCII-Codes für Großbuchstaben liegen
                   // Extrabehandlung
              else
                   // Ansonsten anders fortfahren
    
              if(in.eof()) // Wenn das Dateiende erreicht wurde
                   break;
         }
    }            
    ...
    

    //Edit: Dies ist eine Möglichkeit grundlegend Zeichenweise aus einer Datei zu lesen, ob das in deinem Fall sinvoll ist, ist eine andere Frage.

    Caipi



  • mit Trennzeichen in der Datei zwischen den Strings wirds wesentlich leichter gehen. Ansonsten: verwende bitte std::string, damit hast du wesentlich weniger Probleme als mit char-strings!



  • schau mal in die FAQ unter Dateien und Ströme


Anmelden zum Antworten