videos/musik/pic's in strings speichern?



  • wat? inner Datei mit gotoxy?Kannste vergessen, nimm das was ich dir gesagt das ist die eigentlich beste lösung 😉



  • moped schrieb:

    Mein Lehrer meint, es wäre besser es weiterhin mit !datei.eof()) zu lösen...die lösung wollte er aber nicht preisgeben. Es scheint da eine Möglichkeit mit gotoxy zu geben...

    Wenn ich mich nicht ganz stark irre, ist gotoxy doch dazu da, in der Konsole die Cursorposition zu setzen, richtig? Das ändert aber an deinem Schleifenproblem nix. Oder will er etwa, dass du nach dem letzten Durchlauf nochmal an die entsprechende Position gehst und die überflüssige Zeile mit Leerzeichen überschreibst?! Unnötig unsauber...

    Probier lieber Firefighters Vorschlag aus, das hört sich doch vernünftiger an!

    P.S.: Ich persönlich habe die Erfahrung gemacht, dass viele (nicht alle) Lehrer eher schlechte Programmierer sind. Unser C++-Lehrer in der Berufsschule (allerdings nur Ausbildung zum Informatikkaufmann) war nicht in der Lage, mit zu sagen, wie ich ein int in einen String konvertieren kann!! Der Mann war höchst unfähig! Ohne deinen Lehrer schlecht reden zu wollen, aber ich bin sicher, hier im Forum findest du fähigere Leute.



  • So kleines Beispiel wie ich eine datei einlese solange wie es was zu lesen gibt.

    #include<iostream>
    #include<string>
    #include<fstream>
    
    int main()
    {
      std::string zeile;
      std::ifstream datei("test.txt");//diese Datei hat 800mio Zeilen und 250GB :)
    
      while(getline(datei,zeile))
      {
         std::cout<<"Zeile war: "<<zeile<<std::endl;
      }
    
    return 0;
    }
    


  • Deine Schleife könnte also so aussehen:

    while (getline(datei, Fname)) //fahre fort, solange es wat zu lesen gibt!
    { 
      cout<<"\n\nFilmname: "<<Fname;  //Fname ausgeben
      if(getline(datei, Mname))       //versuchen, Mname einzulesen. wenn geglückt, dann...
      {
        cout<<"\nTrailer:  "<<Mname;  //...Mname ausgeben...
      }else {
        continue;                     //...sonst Schleifendurchlauf verlassen und neuen Durchlauf starten
      }
    }
    


  • Wenn ich mich nicht ganz stark irre, ist gotoxy doch dazu da, in der Konsole die Cursorposition zu setzen, richtig? Das ändert aber an deinem Schleifenproblem nix. Oder will er etwa, dass du nach dem letzten Durchlauf nochmal an die entsprechende Position gehst und die überflüssige Zeile mit Leerzeichen überschreibst?! Unnötig unsauber...

    Ja, gotoxy ist für die cursorposition in der Konsole zuständig.
    Er meinte auch, dass dies eine "Hausfrauen"- Variante wäre (hat jdm. aus der Klasse gemacht) aber auch, dass es eine elegantere Lösung gebe.

    Probier lieber Firefighters Vorschlag aus, das hört sich doch vernünftiger an!

    P.S.: Ich persönlich habe die Erfahrung gemacht, dass viele (nicht alle) Lehrer eher schlechte Programmierer sind. Unser C++-Lehrer in der Berufsschule (allerdings nur Ausbildung zum Informatikkaufmann) war nicht in der Lage, mit zu sagen, wie ich ein int in einen String konvertieren kann!! Der Mann war höchst unfähig! Ohne deinen Lehrer schlecht reden zu wollen, aber ich bin sicher, hier im Forum findest du fähigere Leute.

    Also ich würde nicht sagen, dass mein C++-Lehrer unfähig ist 🙂

    @Firefighter
    Das geht doch nur bei EINEM string? Ich muss aber 2 Strings (jeweils nacheinander) ausgeben.



  • _matze schrieb:

    Deine Schleife könnte also so aussehen:

    while (getline(datei, Fname)) //fahre fort, solange es wat zu lesen gibt!
    { 
      cout<<"\n\nFilmname: "<<Fname;  //Fname ausgeben
      if(getline(datei, Mname))       //versuchen, Mname einzulesen. wenn geglückt, dann...
      {
        cout<<"\nTrailer:  "<<Mname;  //...Mname ausgeben...
      }else {
        continue;                     //...sonst Schleifendurchlauf verlassen und neuen Durchlauf starten
      }
    }
    

    cool, danke 🙂
    Irgendwie steh ich in letzter Zeit zu oft auf dem Schlauch 😮



  • joa is ja kein thema ob einer x strings. Du kannst ja innerhalb der while immernoch sagen getline(datei,deinzweiterstring) und schon gehts mit 2 🙂



  • moped schrieb:

    _matze schrieb:

    Deine Schleife könnte also so aussehen:

    while (getline(datei, Fname)) //fahre fort, solange es wat zu lesen gibt!
    { 
      cout<<"\n\nFilmname: "<<Fname;  //Fname ausgeben
      if(getline(datei, Mname))       //versuchen, Mname einzulesen. wenn geglückt, dann...
      {
        cout<<"\nTrailer:  "<<Mname;  //...Mname ausgeben...
      }else {
        continue;                     //...sonst Schleifendurchlauf verlassen und neuen Durchlauf starten
      }
    }
    

    cool, danke 🙂
    Irgendwie steh ich in letzter Zeit zu oft auf dem Schlauch 😮

    Aus dem continue kannst du übrigens ein break machen. Wenn das zweite getline fehlschlägt, bringt ein erneutes Durchlaufen der Schleife natürlich nix mehr. Ich hatte an Filme ohne Trailer gedacht. Aber wir lesen ja hier zeilenweise und abwechselnd ein, da darf es keine Filme ohne Trailer geben (und wenn's nur ein "leer"-Eintrag ist).


Anmelden zum Antworten