Lesen getrennten Spalten in einer CSV-Datei in C++ unter Verwendung von getLine

Ich habe ein Programm, das erfolgreich Lesen einer CSV-Datei. Das sagte der CSV-Datei ist eine Liste getrennt durch 3 Spalten. Und jede Spalte hat ein Komma zwischen jeder Zeile. Zum Beispiel

Zeile 1 - - - (Interpret, genre, song
Zeile 2 --- Michael jackson, Pop, thriller

und so weiter. Was ich will, mein Programm zu tun ist, Lesen Sie die erste Zeile und Künstler, genre und song, drucken Sie diese aus, um den Benutzer als Optionen. Zum Beispiel

"Wählen Sie eine Option"
1. Künstler
2. Genre
3. Song

dann, wenn Sie eine option auswählen, dann zeigt Ihnen alle Interpreten, songs oder genres in der CSV-Datei.

Bisher habe ich mein Programm Auslesen der CSV und setzen jede Zeile in einen Vektor. Hier ist mein code bisher ...

#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
    ifstream infile("music_list.csv");
    string line = "";
    vector<string> all_words;
    cout << "Hello";
    while (getline(infile, line))
    {
        stringstream strstr(line);
        string word = "";
        while (getline(strstr,word, ','))
        {
            all_words.push_back(word);
        }

        for (unsigned i = 0; i < all_words.size(); i++)
        {
            cout << all_words.at(i)<< "\n";
        }

    }
    system("pause");
    return 0;
}

Bin ich nur Probleme, herauszufinden, wie man es Lesen der ersten Zeile, trennen Sie die einzelnen string in die erste Zeile, die ist schon durch ein Komma getrennt und haben dass dann ausgegeben, die dem Benutzer als eine option. Also im Grunde kann ich ändern, Interpret, genre, song und so etwas wie Vorspeisen, Speise, Getränke in der CSV-Datei.

InformationsquelleAutor Matthew Miles | 2013-04-08

Schreibe einen Kommentar