如何使用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>>
把它放入double
或float
。
相关文章:
- 算术运算的结果类似于:C浮点变量中的1/3
- 更快的C++算术运算
- 为什么循环体中的一个基本算术运算执行得比两个算术运算慢
- 为什么对无符号字符进行算术运算会将它们提升为有符号整数
- 如何在 C++ 中计算字符串的算术运算
- 复数的算术运算
- 具有非常非常大数字的算术运算
- 如何使用C++中的处理器指令来实现快速算术运算
- boost::spirit::x3 phrase_parse 在进入 Vector 之前进行算术运算
- C++中混合数据类型的算术运算
- C++:编译器是否优化整数 + 浮点算术运算?
- 如何在特征中对二维数组的列执行简单的算术运算
- 使用数字列表和算术运算获取目标数字
- C++:“enable_if”用于限制支持特定算术运算的类型
- 如何正确避免 SIGFPE 和算术运算溢出
- 编译器用于编译 128 位整数的基本算术运算的技巧
- 将临时值存储为某种数据类型时,算术运算的标准规则是什么
- 相同的算术运算在 C++ 和 Python 中给出不同的结果
- 带有空的算术运算
- 如何使用c++解析csv文件并对其进行算术运算