I want to write a generic function to parse CSV files. My code acts very strange as it never stops and repeats the first line forever. What am I doing wrong here?
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
std::vector<std::vector<std::string>> parseCsvFile(std::string_view source,
char valueSeparator) {
auto reult = std::vector<std::vector<std::string>>();
for(std::string line;
std::getline(std::istringstream(source.data()), line);
/* emoty cond */) {
std::istringstream stream(line);
std::string token;
while(std::getline(stream, token, valueSeparator)) { // never ends
// debug
std::cout << token << "\n" << std::endl;
// push to vector
}
}
return reult;
}
void test() {
auto testData = std::string("a,b,c,d\r\ne,f,g,h\r\n");
const auto data = parseCsvFile(testData, ','); // Never ends
}