ifstream frage



  • hallo,

    ich lese eine datei ein und suche in ihr (find()). meine frage ist nun: wie kann ich das auslesen, was nach der gefundenen zeile kommt?
    also ungefähr so:

    ...
    asd 1 hund, 2 katzen, 3 ratten
    

    und ich will dann "1 hund, 2 katzen, 3 ratten" in einem string (oder array) speichern

    danke schon mal



  • Wenn du es in einem std::string speicherst, solltest du dir mal erase angucken.



  • nicht getestet:

    std::ifstream stream("asd.txt");
    
    std::string ergebnis;
    std::string first;
    while(stream >> first)
    {
      if(first == "asd")
      {
        std::getline(ergebnis, stream);
        break;
      }
      else
        stream.ignore(stream.rdbuf()->in_avail(), '\n');
    };
    

    bb



  • ok danke, aber "first" (also der string) gibt immer den nächsten block aus: "text" (was nach "asd" kommt) aus

    ...
    asd 1 katze, 2 hunde, 3 ratten
    ...
    text miau, wuff, raschel
    ...
    


  • deskjet schrieb:

    ok danke, aber "first" (also der string) gibt immer den nächsten block aus: "text" (was nach "asd" kommt) aus

    ...
    asd 1 katze, 2 hunde, 3 ratten
    ...
    text miau, wuff, raschel
    ...
    

    du meintest im ersten post, dass du das ohnehin nicht brauchst...
    du solltest evtl mal ein wenig genauer werden in dem, was du damit machen möchtest - so würdest du den inhalt des ersten eintrages bekommen, der mit asd anfängt. first ist hier dann nicht mehr zu verwenden, lediglich ergebnis - dort wiederrum steht aber eigtl genau das drin, was du haben wolltest...

    bb


Anmelden zum Antworten