c++ - 尝试使用 C++ 读取 CSV 文件出现 invalid_argument 错误
问题描述
这是我用来尝试将 csv 文件中的两列数据读取到 C++ 中的向量中的代码。我能够读取标题,但是当我继续读取实际数据时,我收到一个涉及“stof”的错误,它将字符串转换为浮点数。我很确定这个错误是由于 stof 无法找到任何数量的字符串来转换为浮点数,但这没有任何意义,因为括号内的变量确实是一个字符串,它包含数字。
#include <vector>
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char** argv)
{
ifstream inFS;
string line;
string rm_in, medv_in;
const int MAX_LEN = 1000;
vector<double> rm(MAX_LEN);
vector<double> medv(MAX_LEN);
cout << "Opening file MyData.csv" << endl;
inFS.open("MyData.csv");
if(!inFS.is_open())
{
cout << "Could not open file MyData.csv" << endl;
return 1;
}
cout << "Reading line 1" << endl;
getline(inFS, line);
cout << "heading :" << line << endl;
int numObservations = 0;
while(inFS.good())
{
getline(inFS, rm_in , ',');
getline(inFS, medv_in , '\n');
rm.at(numObservations) = stof(rm_in);
medv.at(numObservations) = stof(medv_in);
numObservations++;
}
rm.resize(numObservations);
medv.resize(numObservations);
}
我得到的错误是: 错误