我工作的文件IO的结束,我已经成功地从文件到我所做的矢量获取数据,但是当我打印值,我拿到后垃圾号码数据的最后部分。所以我猜测,不存在到载体的推动值,或者其试图打印不存在矢量的部分。任何帮助都会很棒。循环将不仅仅停留在文件
的main.cpp
#include <iostream>
#include <sstream>
#include <fstream>
#include <vector>
#include <string>
#include "store.h"
using namespace std;
int main()
{
store data;
ifstream inFile ("C:/Users/Owner/Desktop/Albums.csv");
string line;
string item;
int num;
int itemnum;
int linenum = 1;
ostringstream convert;
string temp;
while (!inFile.eof())
{
while (getline (inFile, line))
{
istringstream linestream(line);
itemnum = 0;
num = 0;
convert << linenum;
temp = convert.str();
data.addtovectv(temp);
while (getline (linestream, item, ','))
{
if (itemnum == 1 || itemnum == 2 || itemnum == 3 || itemnum == 5)
{
num++;
data.addtovectfullline(0, item);
}
itemnum++;
}
linenum++;
}
}
data.print();
inFile.close();
return 0;
}
store.h
#ifndef STORE_H
#define STORE_H
#include <iostream>
#include <sstream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
class store
{
public:
store();
void addtovectv(string);
void addtovectfullline(int, string);
void print();
private:
vector<string> v;
vector< vector<string> > fullline;
};
#endif
store.cpp
#include "store.h"
store::store()
{
}
void store::addtovectv(string a)
{
v.push_back(a);
fullline.push_back(v);
}
void store::addtovectfullline(int a, string c)
{
fullline[a].push_back(c);
}
void store::print()
{
for(unsigned int i=0; i<fullline.size(); i++)
{
for(unsigned int j=0; j<fullline[i].size(); j++)
{
cout << fullline[i][j] << endl;
}
cout << endl;
}
}
编辑:一些示例数据
RS 500汇编,群星,太阳纪录集团上,308
两个列表,调用任务,低端理论,1991年,154,扎,的Skeff安瑟伦,Zombart JK,USA一个部落,48:08:52
两个列表,AC/DC, Back to Black,1980,73,ATCO,Robert John Lange,Bob Defrin,澳大利亚/英国,41:36:52
这两个清单,AC/DC,公路到地狱,1979,199,Albert Productions,Robert John兰格,鲍勃Defrin澳大利亚/英国,41:53:52
我需要读取的行,但只把第二,第三,第四和第六条信息到矢量,这是它应该最终印刷,与每个人新的一行上的残余物。所有数据都存储在一个.csv文件
这个样本数据,我的输出是这样的截图:http://puu.sh/bHtHM.png 但是,没有这些数字的底部应该在那里,并且在第一组后一个奇怪的空间数据
EDIT2的:意识到奇怪的空间是一个没有我要求的数据,所以它的精细
请提供一个例子输入和预期与实际输出。 – 2014-09-21 03:07:50
好吧,是否这样做,对不起 – 2014-09-21 03:32:10
请更清楚您输出的确切格式。只需粘贴它,逐字。 – 2014-09-21 03:48:01