在C 中读取CSV文件

read csv file in c++

本文关键字:CSV 文件 读取      更新时间:2023-10-16

i有一个.csv文件,该文件仅包含两个带有人名称和年龄的列。看起来像:

Name      Age
Peter     16
George    15.5
Daniel    18.5

我只想在双打矢量中收集人们的年龄。所以我想拥有诸如vect = {16,15.5,18.5}的东西。

仅使用标准库时我该如何实现?

非常感谢

@bugsfree谢谢您的脚本,但似乎对我不起作用。

这是我最终做到的(如果有人感兴趣的话...)

ifstream infile("myfile.csv");
vector<string> classData;
vector<double> ages;
std::string line;
while (getline(infile, line,'n'))
{
    classData.push_back(line); //Get each line of the file as a string
}
int s = classData.size();
for (unsigned int i=1; i<s; ++i){
    std::size_t pos = classData[i].find(",");      // position of the end of the name of each one in the respective string
    ages[i-1] = std::stod(classData[i].substr(pos+1,classData[i].size())); // convert string age to a double
}

您可以做这样的事情:

#include <sstream>
#include <string>
#include <fstream>
ifstream infile( "yourfile.csv" ); 
std::vector<double> ages;
while (infile)
{
    std::string line;
    if (!std::getline( infile, line,' ' )) break;
    std::istringstream iss(line);
    string name;
    double age;
    if (!(iss >> name >> age)) { break; }
    ages.push_back(age);
}