Spalten aus CSV-Datei umwandeln und absteigend sortieren



  • Hey Leute,
    inzwischen hab ich es alleine geschaft.
    Das einizge was jetzt noch fehlt, ist das hier:

    sscanf(column_content_in_char, "%i;%i;%i;%i;%i;%i;%i;%i;%i;%i;%i", &array_number[0], &array_number[1], &array_number[2], &array_number[3], &array_number[4], &array_number[5], &array_number[6], &array_number[7], &array_number[8], &array_number[9], &array_number[10]);
    

    Damit komm ich noch nicht klar. Ich habe mich sehr lange mit stringstreams beschätigt, komme aber dennoch nicht so ganz klar.
    Wie muss ich das in C++ machen?
    Mfg Flo



  • for(int i = 0; i < 11; ++i)
        std::cin >> array[i];
    


  • FlorianB schrieb:

    Wie muss ich das in C++ machen?

    Hallo Flo,

    so wie es hier steht.

    314159265358979 schrieb:

    for(int i = 0; i < 11; ++i)
        std::cin >> array[i];
    

    Du hast die ';' in sscanf(column_content_in_char, "%i;%i;%i;%i;%i;%i;%i;%i;%i;%i;%i", .. übersehen



  • Da hast du Recht, sorry.



  • Schau dir mal stringstreams an. Vorgehen in dem Fall:

    1. leerer ostrignstream
    2. in einer Schleife die Nummern, jeweils gefolgt von einem ';' in den Stream
    3. string aus dem stringstream holen.

    Also 1:
    #include <sstream>
    ...
    in der main:

    ostringstream content_from_line;

    2:

    for(int i = 0; i < 11; ++i)
    {
    content_from_line << line_content_in_char + ";";
    }

    3:

    Wie mach ich das?

    Zu zwei noch: warum eigentlich die Nummern gefolgt von einem Komma? In line_content_in_char steht zum Beispiel 85;45;26;496;314; drin! Da muss ich doch nicht noch Kommas einfügen! Das macht doch schon die CSV Datei bzw das wird schon mit Kommas ausgelesen.
    Das versteh ich nicht ganz.
    MfG Flo



  • FlorianB schrieb:

    pumuckl schrieb:

    Schau dir mal stringstreams an. Vorgehen in dem Fall:

    1. leerer ostrignstream
    2. in einer Schleife die Nummern, jeweils gefolgt von einem ';' in den Stream
    3. string aus dem stringstream holen.

    [...]

    Das versteh ich nicht ganz.

    Hallo Flo,

    darauf sollte Dir besser pumuckl selbst antworten.

    FlorianB schrieb:

    Das einizge was jetzt noch fehlt, ist das hier:

    sscanf(column_content_in_char, "%i;%i;%i;%i;%i;%i;%i;%i;%i;%i;%i", &array_number[0], &array_number[1], &array_number[2], &array_number[3], &array_number[4], &array_number[5], &array_number[6], &array_number[7], &array_number[8], &array_number[9], &array_number[10]);
    

    [...]
    Wie muss ich das in C++ machen?

    auf diese Frage präzisiere ich meine Antwort von vorhin [12:18:51 09.03.2011]: das Code-Segment in meinem Beitrag in den Zeilen 19-27 zeigt, wie man das in C++ machen kann (nicht muss). Wobei Du in Zeile 22 den Wert von 'number' in einem Array/Container unter dem Index 'spalte' abspeichern kannst.

    Gruß
    Werner


Anmelden zum Antworten