#ifndef CSVPP_H #define CSVPP_H #include #include #include #include #include #define VERSION "2.2" namespace csvpp { class RowWriter; class RowReader : public std::map { private: std::vector header; bool skipheader; std::string delimiter_char; // this is a string because the split function helper is expecting a string, but really this is just a char public: const char * newline; // Adding support for custom delimiter character // Based on the patch by Hanifa // https://code.google.com/p/csvpp/issues/detail?id=2 RowReader(std::string delimiter_char = ",", bool skipheader=false,const char * newline="\n") : delimiter_char(delimiter_char), skipheader(skipheader), newline(newline) { } void clear() { header.clear(); } friend std::istream & operator>>(std::istream & os, RowReader & r); friend std::ostream & operator<<(std::ostream & os, const RowWriter & r); }; class RowWriter : public std::vector { public: friend std::ostream & operator<<(std::ostream & os, const RowWriter & r); }; typedef RowReader::const_iterator rowiterator; } #endif