2017-02-25 8 views
-1

Ich muss ein Programm erstellen, das eine Textdatei liest und seinen Inhalt anzeigt. Ich konnte mein Programm nur dazu bringen, die Textdatei zu lesen. Allerdings weiß ich nicht, wie ich meine Funktion zum Sortieren der Datei aufrufen soll. Gibt es eine Möglichkeit, den Inhalt in eine Zeichenfolge für meine Funktion zu sortieren?Versuchen Sie, eine Textdatei in C++ zu blasen

Das ist mein Programm:

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

void bubble_sort(string arr[], int length) 
{ 
    string temp; 
    int iteration; 
    int index; 
    for (iteration=0; iteration<length; iteration++) 
    { 
     for (index=0; index<length-iteration; index++) 
     { 
      if (arr[index].compare(arr[index+1]) != 0) 
         { 
       temp = arr[index]; 
       arr[index] = arr[index+1]; 
        arr[index+1] = temp; 
      } 
     } 
    } 
} 

int main(void) 
{ 
    ifstream file("list.txt"); 
    string str; 
    string file_contents; 

    while (getline(file, str)) 
    { 
     file_contents += str; 
     file_contents.push_back('\n'); 
    } 

    cout << file_contents; 
    return(0); 
} 

Dies ist die Textdatei:

2 Witcher CdProjectRed 2015 9.3 
4 Assassin Ubisoft 2013 8.3 
5 Dragon Age Bioware 2014 8.5 
3 Mass Effect Bioware 2013 8.9 
1 Doom IDsoftware 2016 8.5 
+0

Sie sollten mehr echtes C++ einprogrammieren, insbesondere mit [containers] (http://en.cppreference.com/w/cpp/container) wie 'std :: vector '. Dann übergeben Sie ein solches Argument mit * reference * an Ihren 'bubble_sort'. Und kompilieren Sie mit allen Warnungen und Debug-Informationen (z. B. 'g ++ -Wall -g' mit [GCC] (http://gcc.gnu.org/) ...). Dann ** benutze den Debugger ** 'gdb' ... BTW, SO ist nicht für deine Hausaufgaben, also ist deine * fix-my-code * -Frage off-topic. –

+0

Verschwende deine Zeit nicht mit Blasensortieren. Verwende 'std :: sort'. Ihre Saite wird aussehen wie "12222233 ...." und es bedarf einer ernsthaften Verleugnung der Realität, um darauf zu bestehen, dass sie nicht sortiert ist. – user4581301

Antwort

0

Wenn Sie file_contents von einem string zu einem std::vector<string> ändern, werden Sie in der Lage sein, auf sie in eine für den Betrieb ähnlich wie Sie den Inhalt eines Plain-Old-Array manipulieren würden. Speichern Sie alle Ihre Daten in einer einzigen Zeichenfolge (wie Sie in dem Code-Snippet getan haben Sie macht) Sortierung der Teilstrings schwierig (unmöglich?), Weil es nicht offensichtlich für den Sortieralgorithmus, wo ein Teilstring endet und der nächste beginnt.

Verwandte Themen