C ++ 读写 CSV 文件

注:将vector写入csv的数据集

void writecsv(vector<vector<string>>& locXYLabel, const char * data_path)
{
    ofstream outf;
    outf.open(data_path);
    if (!outf)
    {
        cerr << "can not open the file " << endl;
        return;
    }
    for (int i = 0; i < locXYLabel.size(); i++)
    {
        for (int j = 0; j < locXYLabel[i].size(); j++)
        {
            outf << locXYLabel[i][j] << ",";
        }
        outf << endl;
    }
    outf.close();
}

注: 从CSV读入数据

void getLocXY(vector<vector<string>>& locXYLabel, const char* data_path)
{
    ifstream inf;
    inf.open(data_path);
    if (!inf)
    {
        cerr << "can not open the file" << endl;
        return;
    }
    string line;
    while (getline(inf, line))
    {
        istringstream sin(line);// 将数据放入istringstream流中
        vector<string> fields;
        vector<string> xyLabel;
        string field;
        
        while (getline(sin, field, ','))// 根据“,”划分字符串,存入field字段。
        {
            fields.push_back(field);
        }
        xyLabel.push_back(fields[8]);
        xyLabel.push_back(fields[9]);
        xyLabel.push_back(fields[10]);
        locXYLabel.push_back(xyLabel);
        fields.clear();
        xyLabel.clear();

    }
    inf.close();
}

猜你喜欢

转载自blog.csdn.net/hzm1475598891/article/details/81147793