我是一个c++新手。我有一些数据保存在data .csv中,如下所示:
S0001 S0002 S0003 S0004 ...
0 10.289461 17.012874
1 11.491483 13.053712
2 10.404887 12.190057
3 10.502540 16.363996 ... ...
4 11.102104 12.795502
5 13.205706 13.707030
6 10.544555 12.173467
7 10.380928 12.578932
... ... ... ... ...
我需要逐列的值来进行计算(列平均值,移动平均等),所以我想按列解析并将它们保存到数组中。
我读了这些答案,但没有找到我想要的。我所做的是
void read_file(std::vector<std::string>& v, std::string filename){
std::ifstream inFile(filename);
std::string temp;
if (!inFile.is_open()) {
std::cout<<"Unable to open the file"<<std::endl;
exit(1);
}
while (getline(inFile, temp)) {
v.push_back(temp);
}
inFile.close();
}
int main()
{
std::string filename = "Book1.csv";
std::vector<std::string> vec;
read_file(vec, filename);
std::cout<<vec[1]<<std::endl;
}
我只能逐行获取值。但是如何解析文件并按列获取值呢?
只能逐行读取文本文件。如果您只需要一个列(不太可能),您可以解析该行中的值并将其推入一个向量。
如果您需要一次加载所有列,则创建vector
的vector
,并将解析后的值推入不同的列向量。