我有一个CSV文件,其内容类似于:
1,2,3,4,5
"f[0, 0] + f[0, 1]",5,10,0,2
我意识到CSV文件中的引号与CSV文件并不完全“对”。但是,这是我得到的格式。引号中的功能旨在充当CSV文件中数字的引用。例如,[0,0]表示1,类似于2D数组的工作方式。 [0,1]表示2,因此1 + 2 =3。我的评估工作正常,我只需要一种方法来解析这些行。
使用我现在拥有的代码,它用逗号分割文件,但是当它到达“ f [0,0] + f [0,1]”时,它将这些分割成:
"f[0
0] + f[0
1]"
因为有逗号。
这是我目前必须在CSV文件中读取的代码:
string line;
string field;
vector<vector<string>> v_array;
vector<string> v;
// fills the 2D array up
while (getline(file, line))
{
v.clear(); // clears to add the next line
stringstream ss(line);
while (getline(ss, field, ',')) // this is probably the problem, but idk how to work around it
{
v.push_back(field);
}
v_array.push_back(v);
}
如果我运行已有的代码并逐行解析CSV文件,它将得到类似于以下内容的信息:
1
2
3
4
5
"f[1
1] + f[1
2]"
5
10
0
2
基本上,如果一切正常,该文件将如下所示:
1,2,3,4,5
3,5,10,0,2