注册 登录
编程论坛 C++教室

请教C++读取CSV文件到vector 问题

liyibo0719 发布于 2019-10-08 10:20, 1708 次点击
vector <double> read_file(string path)
{
    ifstream file(path);
    string number;
    vector <double> num ={};
    if (!file.is_open())
    {
        cout<<"Fail to open the file!"<<endl;
    }
   
    while (!file.eof()){
        vector <double> num = {};
        getline(file,number,',');
        num.push_back(stod(number));
        
    }
    file.close();
    cout<<num.size() << " numbers loaded!" <<endl;
   
    return num;
}

我刚刚C++入门,写了这个读取CSV文件(文件为逗号分隔开的很多数字)并存储到vector里,报错说是linker有错误,但我搜了一下也不懂是什么,请前辈指点一下!
1 回复
#2
rjsp2019-10-10 08:54
你这代码有很多低级错误,既然你初学C++,那我也就不多说了。
但既然你说“linker有错误”的话,你不肯贴出linker错误,别人怎能知道要解决什么?

对于 CSV,根本没什么标准,以 ms excel 导出的 csv 为例:
1. 文件文字编码,系统默认,不同语言的版本不一样。当然也可以用 utf-16、utf-8 等等,不过有很多问题
2. 以 "\r\n" 作为行间隔,以 "逗号," 作为列间隔
3. 但如果字段以 "双引号"" 开始,则连续的两个双引号代表一个双引号,直到遇到一个单独的双引号表示结束。首尾两个双引号中可以包含 逗号、双引号、换行符 等等。
1