Was ist der beste Weg, um eine tabulatorgetrennte Datei in C++ einzulesen und jede Zeile als Datensatz zu speichern? Ich habe nach einer Open-Source-Bibliothek gesucht, die mir dabei geholfen hat, aber es war nicht erfolgreich, also sieht es so aus, als müsste ich meine eigene schreiben.Abgegrenzte Dateien in C++ lesen
Antwort
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);
}
}
Dies wird Ihnen den Anfang machen. Es wird nicht überprüft, dass jede Zeile die gleiche Anzahl von Feldern hat. Lassen Sie field_delim
usw. aus.
dieser Code funktioniert Bot im Visual Studio. Der Fehler ist ein Fehler "C4430: fehlender Typspezifizierer - int angenommen". Ich habe enthalten string.h – tumchaaditya
Code kompiliert gut auf CentOS mit g ++. Nicht sicher, was du nicht hinzugefügt hast, damit es funktioniert – thaweatherman
Es gibt kein Problem bei der Verwendung von Iostreams - Sie könnten jede Zeile mit getline in string lesen und dann Stringstream für diese Zeichenfolge verwenden, um über Felder zu iterieren.
Im Wikipedia-Artikel CSV_application_support sind einige Bibliotheken aufgeführt.
- 1. in rho abgegrenzte Datei lesen
- 2. JSON-Dateien in C++ lesen
- 3. große Dateien in C# Lesen
- 4. Unicode-Dateien lesen C++
- 5. C# lesen/schreiben .xlsm Dateien
- 6. lesen schreiben mehrere Dateien in C++
- 7. Lesen (Schreiben) von Dateien in C#
- 8. Lesen von CSV-Dateien in C#
- 9. Lesen von Daten aus Dateien in C
- 10. C Das Lesen von Dateien stoppt nicht
- 11. lesen .myl Dateien in Matlab
- 12. .DXF-Dateien lesen
- 13. Lesen von gml in C#
- 14. Sucht und große Dateien in einem Linux-C Lesen ++ Anwendung
- 15. Lesen/Schreiben im Speicher Mapped Dateien in C++ mit Boost
- 16. Lesen von Daten aus Matlab Dateien in C
- 17. Wie soll ich Dateien in C++ mit SDL lesen?
- 18. Fast plattformübergreifender Algorithmus zum Lesen/Schreiben von Dateien in C++
- 19. Korrekter Weg zum Lesen von Elf-Dateien in C
- 20. Lesen/Schreiben von CSV/Tab-Dateien in C#
- 21. Wie CSV-Dateien lesen in C zwischengespeichert werden #
- 22. Ganze Dateien in Lua lesen
- 23. .mat-Dateien in Python lesen
- 24. XML-Dateien in vb6 lesen
- 25. Mehrere Dateien in Vala lesen
- 26. lesen odt-Dateien in PHP
- 27. Lesen von PDF in C#
- 28. .RData-Dateien in Python lesen mit rpy2
- 29. Lesen von JLD-Dateien
- 30. Mehrere Dateien lesen?
Ich war erstaunt, dass, wenn ich nach diesem suchte, ich nicht einfach irgendwo Code für so eine einfache Sache zupfen konnte. Wie auch immer, ich schrieb einen Blog für meine Lösung (basierend auf anderen Antworten auf Stack Exchange) [C++ Tidbits] (http://goo.gl/y0bOVv) – Wybird666