¿Cuál es la mejor manera de leer en un archivo delimitado por tabulaciones en C++ y almacenar cada línea como un registro? He estado buscando una biblioteca de código abierto para ayudar con esto, pero no he tenido éxito, así que parece que tendré que escribir la mía.Lectura de archivos delimitados en C++
Respuesta
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);
}
}
Esto le permitirá comenzar. No hace ninguna comprobación de que cada fila tenga el mismo número de campos, permita el escape de field_delim
, etc.
este código no funciona en Visual Studio. el error es el error "C4430: especificador de tipo faltante - int asumido". He incluido string.h – tumchaaditya
El código compila bien en CentOS con g ++. No estoy seguro de lo que no agregó para que funcione – thaweatherman
No hay problema en el uso de iostreams: puede leer cada línea con getline en una cadena, y luego usar stringstream en esa cadena para iterar sobre los campos.
Hay algunas bibliotecas enumeradas en el artículo CSV_application_support de la wikipedia.
- 1. Excel y archivos delimitados por tabulaciones Pregunta
- 2. lectura C archivos binarios
- 3. lectura/escritura de archivos bmp en c
- 4. Lectura de archivos CSV en C#
- 5. Lectura programática de archivos PDF en C#
- 6. Lectura en archivos XML/KML con C#
- 7. C# TextWriter, permite la lectura de archivos:
- 8. Lectura de archivos XML incrustados C#
- 9. Lectura de archivos MP3
- 10. Lectura de archivos .DXF
- 11. XML vs archivos de texto delimitados por comas
- 12. Lectura de gml en C#
- 13. Lectura de PDF en C#
- 14. Lectura de archivos XML en C# con XpathNavigator
- 15. Lectura de archivos .msg
- 16. Lectura de archivos MIDI
- 17. Ruby: Lectura de archivos PDF
- 18. FileSystemObject - Lectura de archivos Unicode
- 19. Lectura de archivos .mat en Python
- 20. Lectura de archivos * .wav en Python
- 21. Lectura de archivos completos en Lua
- 22. Lectura de archivos wav en Java
- 23. Lectura de archivos Android.mk en subdirectores recursivamente
- 24. Lectura de archivos xlsx en PHP
- 25. Lectura de archivos bmp en Python
- 26. Lectura de archivos muy grandes en PHP
- 27. lectura de archivos odt en php
- 28. Lectura de documentos compuestos en C#
- 29. Lectura y escritura de archivos binarios
- 30. Lectura rápida de ciertos bytes de varios archivos en C/C++
Me sorprendió que cuando busqué esto, no pude simplemente arrancar algún código de alguna parte para algo tan simple. De todos modos, escribí un blog para mi solución (basado en otras respuestas en Stack Exchange) [C++ Tidbits] (http://goo.gl/y0bOVv) – Wybird666