对于c ++我是新手,我想要做的是从.csv文件中读取并将其存储在向量中然后显示,我的问题是代码在最后一个reqd条目之后崩溃了从终端运行时从文件显示,但在ide(codeblocks)中,当我尝试调试时,它会显示sigsegv错误...
ps:我希望将文件读入矢量的原因是以后能够进入mysqldb
#include <vector>
#include <string>
#include <sstream>
#include<fstream>
#include <iostream>
using namespace std;
vector<string> split_at_commas(const string& row)
{
vector<string> res;
istringstream buf(row);
string s;
while (getline(buf, s, ','))
res.push_back(s);
return res;
}
int main()
{
string line;
ifstream data("Book1.csv" ,ios::out);
while(!data.eof())
{
getline(data,line,'\n');
vector<string> v = split_at_commas(line);
/*ide points error to this line*/
cout << v[0] << '\t' << v[1] <<'\t' << v[2]<< '\t'<<endl;
}
data.close();
}
答案 0 :(得分:1)
无法保证'v'包含三个或更多元素。在调用split_at_commas之后和调试器中打印之前检查'v'的内容,以验证v是否包含3个或更多项。