我是一個新手,當涉及到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();
}
你的代碼縮進很糟糕,你應該感覺很糟糕。請修復 –
你可以發佈你的數據文件 - 你可能有一行沒有三列,所以你試圖訪問一個不存在的元素。 –
最有可能的是,你的最後一個記錄少於3個值,這使'v [2]'違反了數組的邊界。 – 2012-11-21 11:35:15