Please, find a cure for COVID now ;^)
/**
g++ -std=c++17 -o prog_cpp prog_cpp.cpp \
-pedantic -Wall -Wextra -Wconversion -Wno-sign-conversion \
-g -O0 -UNDEBUG -fsanitize=address,undefined
**/
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
std::vector<std::vector<std::string>>
read_document(const std::string &file_name)
{
auto content=std::vector<std::vector<std::string>>{};
auto row=std::vector<std::string>{};
auto field=std::string{};
auto input=std::ifstream{file_name};
auto c=char{};
while(input.get(c))
{
if(c=='\n')
{
row.emplace_back(std::move(field));
field.clear();
content.emplace_back(std::move(row));
row.clear();
}
else if(c==',')
{
row.emplace_back(std::move(field));
field.clear();
}
else
{
field+=c;
}
}
if(!empty(field))
{
row.emplace_back(std::move(field));
}
if(!empty(row))
{
content.emplace_back(std::move(row));
}
return content;
}
int
main()
{
const auto content=read_document("my_file.csv");
for(const auto &row: content)
{
for(const auto &field: row)
{
std::cout << '|' << field;
}
std::cout << "|\n";
}
return 0;
}