c++读取数据文件

文件中的数字以逗号结尾:

3.0,2,3,1,2,3
2,3,4,2,3,2
4,5,6,7,4,3.0

具体代码如下:

//
//  main.cpp
//  Load_Data
//
//  Created by tong on 2019/1/4.
//  Copyright © 2019年 tong. All rights reserved.
//

#include <iostream>

typedef std::vector<std::vector<float>> Data;
typedef std::vector<float> RowData;
typedef std::vector<float> ColData;

void print(Data &data)
{
    int row = data.size();
    int col = data[0].size();
    for(int i = 0; i < row; i++)
    {
        for(int j = 0; j < col; j++)
        {
            std::cout<<data[i][j]<<" ";
        }
        std::cout<<std::endl;
    }
}

void LoadDataNum(Data &data,const char *infile)
{
    std::cout<<infile<<std::endl;
    std::ifstream dataFile;
    dataFile.open(infile);
    std::string tmpstrline;
    std::string val;
    RowData rowData;
    if(dataFile)
    {
        while(!dataFile.eof())
        {
            getline(dataFile, tmpstrline, '\n');
            std::stringstream input(tmpstrline);
            if( tmpstrline != "\0")
            {
                while(getline(input, val, ',')) //表示以逗号结尾进行分割
                {
                    rowData.push_back(atof(val.c_str()));  //一定要用c_str()否则报错
                }
                data.push_back(rowData);
            }
            rowData.clear();
        }
    }
    dataFile.close();
}
int main(int argc, const char * argv[]) {
    // insert code here...
    Data data;
    char * file = "/Users/Load_Data/Load_Data/data.txt";
    LoadDataNum(data, file);
    print(data);
    return 0;
}

 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做个自由的人

随缘吧打赏与否还是会坚持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值