这是我的CSV file,我想解析这个csv数据并获取相应的列。然后使用fetched列执行一些算术运算。这是我的代码
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
//https://ethercalc.org/fo128cmznr
int main()
{
std::vector <double> vec,vec1;
std::ifstream theFile("stock.csv");
std::string symbol,date;
std::string line;
double open,high,low,close,adjclose,volume;
while (getline(theFile, line))
{
std::stringstream linestream(line);
std::getline(linestream, symbol, ',');
std::getline(linestream, date, ',');
std::getline(linestream, open, ',');
std::getline(linestream, high, ',');
std::getline(linestream, low, ',');
std::getline(linestream, close, ',');
std::getline(linestream, adjclose, ',');
std::getline(linestream, volume, '\n');
std::cout<<"volume "<<volume<<"\n";
double sum=(volume+close)/open;
double rat=(open/high);
std::cout<<"sum "<<sum<<"\n";
vec.push_back(sum);
vec1.push_back(rat);
}
return 0;
}
这是问题所在;如果我将每个变量转换为字符串,但我不能以字符串形式执行算术运算,我可以解析数据。但如果我使用其他格式的变量,如double,float等,那么我无法解析csv文件本身。如何解决这个问题?
答案 0 :(得分:0)
您证明您知道std::stringstream
是什么,并且您知道如何使用它。
所以,举个例如low
。拿这个std::string
,用它来构建std::stringstream
,然后使用operator>>
将其放入double
或float
。