【发布时间】:2017-01-02 13:38:42
【问题描述】:
我想知道如何将 CSV 文件中的数据存储到结构化数组中。我意识到我需要使用 getline 等,到目前为止我已经想出了这个代码:
这是我的结构:
struct csvData //creating a structure
{
string username; //creating a vector of strings called username
float gpa; //creating a vector of floats called gpa
int age; //creating a vector of ints called age
};
这是我的数据阅读器和存储数据的部分:
csvData arrayData[10];
string data;
ifstream infile; //creating object with ifstream
infile.open("datafile.csv"); //opening file
if (infile.is_open()) //error check
int i=0;
while(getline(infile, data));
{
stringstream ss(data);
ss >> arrayData[i].username;
ss >> arrayData[i].gpa;
ss >> arrayData[i].age;
i++;
}
此外,这就是我尝试打印信息的方式:
for (int z = 0; z<10; z++)
{
cout<<arrayData[z].username<<arrayData[z].gpa<<arrayData[z].age<<endl;
}
但是,当运行这个命令时,我得到了一个似乎是随机数的 cout:
1.83751e-0383 03 4.2039e-0453 1.8368e-0383 07011688
我认为这必须是运行的数组未正确存储变量,因此我正在读取随机内存插槽,但是我不确定。
最后,这是我正在尝试读取的 CSV 文件。
username,gpa,age
Steven,3.2,20
Will,3.4,19
Ryan,3.6,19
Tom,3,19
【问题讨论】:
标签: c++ csv c++11 io stringstream