我试图编写一个读取csv文件并返回内容的函数,我认为解决方案只是一个简单的二维数组,但我能找到的唯一信息就是这不仅是皱眉的但是,从C ++函数返回二维(或更多)数组的唯一方法是预先确定大小。
我不喜欢预先定义我的数组大小的想法,因为在这个特定的上下文中,我需要一个数组设置来保存256TiB的数据,因为我在读取之前无法知道文件大小
我想知道的是正确这样做的方式是什么?
答案 0 :(得分:0)
您可以使用列表数组的列表数组。
读取一行,拆分,创建一个列表数组。
将此列表数组添加到行的列表数组中,比如cvs list array。
您将能够使用csv [row] [column]
访问该元素cvs.count()是行数,cvs [row] .count()是行中元素的数量。
容易......祝你好运!
答案 1 :(得分:0)
详细信息将取决于您正在做什么,但一个常见的解决方案是拥有std::vector
struct
(包含字段):
// the CSV fields will be read into the struct's data members
struct record
{
std::string name;
std::string address;
unsigned age;
// ...
};
std::vector<record> read_csv(std::istream& is)
{
std::vector<record> records;
std::string line;
while(std::getline(is, line))
{
record r;
// populate r with CSV data in line
records.push_back(r); // add record to vector
}
return records;
}