Frage

    

Diese Frage bereits eine Antwort hier:

    
            
  •              Wie kann ich CSV-Dateien in C ++?                                      33 Antworten                          
  •     
    

Was ist die beste Art und Weise in einem Tab getrennten Datei in C ++ und speichert jede Zeile als Datensatz zu lesen? Ich habe für eine Open-Source-Bibliothek suchen, um mit diesem zu helfen, aber war nicht erfolgreich, so sieht es aus wie ich muß meine eigenen schreiben.

War es hilfreich?

Lösung

typedef vector<vector<string> > Rows;
Rows rows;
ifstream input("filename.csv");
char const row_delim = '\n';
char const field_delim = '\t';
for (string row; getline(input, row, row_delim); ) {
  rows.push_back(Rows::value_type());
  istringstream ss(row);
  for (string field; getline(ss, field, field_delim); ) {
    rows.back().push_back(field);
  }
}

Das wird Ihnen den Start. Dabei spielt es keine Kontrolle tun, dass jede Reihe die gleiche Anzahl von Feldern hat, erlaubt field_delim zu entkommen, etc.

Andere Tipps

Es gibt kein Problem iostreams in Verwendung -. Sie jede Zeile mit getline in String lesen konnte, und verwenden Sie dann string auf dieser Zeichenfolge über Felder iterieren

Es gibt ein paar Bibliotheken aufgeführt in Wikipedia-Artikel CSV_application_support .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top