Aus einer Datei in ein Array einlesen



  • Hallo,

    ich habe ein Problem. Ich möchte bzw. ich muss für die Uni einen Sortieralgorithmus schreiben, der den Inhalt einer Datei soritert.

    Ich mache ein Fernstudium und das macht die Sache ein bißchen komplizerter 😉 Ich habe mir jetzt gedacht, ich lese die Datei einfach in ein Array ein (in der Datei stehen nur Namen untereinander) und sortiere dann das Array. Geht das überhaupt so?

    Ich habe nur leider keinen blassen Schimmer, wie ich generell in C++ das einlese. Ich habe schon sehr viele Beispiele in Google und div. Foren gefunden, aber es hat mich alles nicht wirklich weitergebracht.

    Kann mir einer helfen bzw. weiß jemand eine Quelle, in der ich so ein Beispiel finde?

    Danke, Bianca



  • Anstelle eines Arrays würde ich lieber einen vector<string> verwenden und dann die einzelnen Elemente per getline() lesen und per push_back() in deinen vector einfügen.

    (PS: Zum Sortieren hat die STL auch etwas vorliegen - sort(), stable_sort(), partial_sort() - such dir eins davon aus)



  • Hallo

    Einlesen geht so:

    #include <fstream>
    #include <cassert>
    #include <string>
    #include <vector>
    
    std::ifstream FileToReadOut("Name der Datei");
    assert(FileToReadOut);
    std::string Temp;
    std::vector<std::string> ArrayOfStrings;
    
    while(!FileToReadOut.eof())
    {
        getline(FileToReadOut,Temp);  //liest immer ganze Zeile ein
        ArrayOfStrings.push_back(Temp;
    }
    

    ist antürlich ungetest und soll nur zum Anregen von Ideen sein.

    chrische



  • Vielleicht wärs das beste wenn du C++ lernst?
    Ich kann mich täuschen aber ich hab das gefühl du weist noch garnichts,
    dann wär es das beste wenn du dir ein tutorial schnappst und das durcharbeitest,
    denn teil den du schon weist kannst du ja überfliegen.
    Was lernst du denn in diesem fernstudium, wird das da nciht irgendwie "besprochen"?

    Das mit dem array ist keine schlechte idee. Bleibt noch das Suchverfahren, a gibts verschiedene BubbleSort,Quicksort... such einfach mal unter "Suchverfahren".

    Als letztes musst du dihc darüber informieren wie du eine Datei einließt,
    was auch nicht so schwer ist such mal unter "fstream".

    Aufpassen musst du das dein Array groß genug ist, weist du von anfang an wie viele namen du einlesen sollst? Wenn nihct musst du dich noch über "new" und "delete"
    informieren

    //EDIT:
    Waren wohl wechle schneller
    Aber Achtung du sollst ein Sortierverfahren schreiben, nciht ein vordefiniertes verwenden,
    wies mit STL aussieht musst du selber wissen ob du sowas benutzen sollst, ich weis ja nicht wie weit du bist.


Anmelden zum Antworten