繁体   English   中英

如何使用c ++解析csv文件并对其进行算术运算?

[英]How to parse csv file and do arithmetic operations on it using c++?

这是我的CSV文件 ,我想解析此csv数据并获取相应的列。 然后使用提取的列执行一些算术运算。 这是我的代码

#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文件本身。 如何解决这个问题呢?

您证明自己知道std::stringstream是什么,并且知道如何使用它。

因此,以low为例。 取这个std::string ,用它来构造一个std::stringstream ,然后使用operator>>将其放入doublefloat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM