This command-line utility converts the content of CSV files (comma-separated values) into .hpp files (C++ header files) - to #include them and immediately start to develop on structured, well-formed datasets. This skips error-prone steps like file delivering, loading, parsing, converting, and checking.
- Export or download your database in CSV format, e.g. to: bucket_list.csv
- Open the CSV file in a text editor and add datatype hints to the header line, e.g.:
Location (std::string), Latitude (°), Longitude (°) - Execute in a terminal window:
csv2hpp bucket_list.csv POI > bucket_list.hpp. - Add the generated header file to your project (#include "bucket_list.hpp") and start to develop.
- Build csv2hpp by executing:
cd src && cmake . && make(just requires cmake and a C++ compiler) - Datatype hints are mapped to C/C++ datatypes as follows:
(std::string)→std::string,(double)→double, no datatype is a string,(skip)skips the entire column. See all 87 supported datatype hints in: datatype_hints.csv - Empty CSV data cells are mapped to "" for strings and to 00 for everything else (as a hint).
- Precision hints such as '±05' are removed in float or double values (not supported in C/C++).
- Supports also big .CSV files: omits whitespaces, removes trailing '0'. It's recommended to use 'const char*' instead of 'std::string' which can break some compilers.
- More examples can be found in the 📁examples subfolder.
- Contributions, suggestions, and improvements are welcome!
- Open an Issue if you encounter bugs or have feature ideas.
- Create a Pull Request if you'd like to improve something.
This open source project is licensed under the CC0-1.0 license. All trademarks are the property of their respective owners.