Qual è il modo migliore per leggere in un file delimitato da tabulazioni in C++ e memorizzare ogni riga come record? Sono stato alla ricerca di una libreria open source per aiutare con questo, ma non hanno avuto successo, quindi sembra che dovrò scrivere il mio.Lettura file delimitati in C++
risposta
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);
}
}
Questo ti consente di iniziare. Non esegue alcuna verifica che ogni riga abbia lo stesso numero di campi, consentire l'escape field_delim
, ecc.
questo codice funziona con bot in Visual Studio. l'errore è errore "C4430: identificatore di tipo mancante - int assunto". Ho incluso string.h – tumchaaditya
Il codice compila bene su CentOS con g ++. Non sei sicuro di cosa non hai aggiunto per farlo funzionare – thaweatherman
Non vi è alcun problema nell'utilizzo di iostreams: è possibile leggere ogni riga con getline in stringa e quindi utilizzare stringstream su quella stringa per eseguire un'iterazione sui campi.
Ci sono alcune librerie elencate nell'articolo di wikipedia CSV_application_support.
- 1. Lettura/scrittura di file CSV/delimitati da tabulazione in C#
- 2. Lettura file CSV in C#
- 3. File delimitati da Excel e schede Domanda
- 4. C# Leggi Text file contenente i dati delimitati da tabulazioni
- 5. lettura dati delimitati da tabulazione senza intestazioni nei panda
- 6. C# Lettura PCL da file
- 7. lettura/scrittura di file bmp in c
- 8. Lettura/scrittura su file binari in C
- 9. Lettura di un file immagine in C/C++
- 10. C# crea file di lettura/scrittura da sola lettura
- 11. Lettura file C++ fino allo spazio
- 12. Lettura dal file di testo - Obiettivo C
- 13. C# TextWriter, consentire la lettura dei file:
- 14. C++, lettura di un file utilizzando ifstream
- 15. Risultati popen lettura in C++
- 16. C la lettura dei file binari
- 17. lettura notazione scientifica in C
- 18. Come aprire un file per la lettura in C?
- 19. Lettura del file XML in C# con XpathNavigator
- 20. lettura dei dati da file di MATLAB in C
- 21. C++, lettura righe file in base ai numeri
- 22. Lettura di un file riga per riga in C#
- 23. dimensione buffer ottimale per la lettura di file in C
- 24. Lettura di un file binario in Java vs C++
- 25. La lettura di un file * Csproj in C#
- 26. Lettura da un file di testo in C#
- 27. lettura di un file XML in un programma C++
- 28. Sostituzione di più blocchi delimitati in sed
- 29. C# UTF8 Lettura/emissione
- 30. Lettura di file MP3
Mi sono stupito che quando ho cercato questo, non ero in grado di strappare semplicemente del codice da qualche parte per una cosa così semplice. Ad ogni modo, ho scritto un blog per la mia soluzione (basata su altre risposte su Stack Exchange) [C++ Tidbits] (http://goo.gl/y0bOVv) – Wybird666