我的信息看起来像这样
No. ID DATE_EVENT TIME_EVENT EVENT CODE
102995 018159871 07/08/2014 09:01:57 9008 1111
20398 018159871 07/08/2014 09:01:58 1000 1402
105541 018159871 07/08/2014 09:01:58 9210 1111
63492 018253609 07/08/2014 09:54:26 9008 905
37552 018253609 07/08/2014 09:54:45 9008 1111
9627 018253609 07/08/2014 09:54:48 9210 1111
112700 018253609 07/08/2014 09:54:48 1000 1402
50555 018253609 07/08/2014 09:55:56 1000 1401
63634 018253609 07/08/2014 09:55:56 9210 1111
34551 018330948 07/08/2014 09:21:51 9008 905
47252 018330948 07/08/2014 09:22:15 9008 1111
3975 018330948 07/08/2014 09:22:17 1000 1402
24196 018330948 07/08/2014 09:22:17 9210 1111
111150 018342571 07/08/2014 09:40:08 9008 905
17119 018342571 07/08/2014 09:40:19 9008 1111
18658 018342571 07/08/2014 09:40:21 9210 1111
25654 018342571 07/08/2014 09:40:21 1000 1402
如您所见,信息按时间和 ID 排序。我希望能够做的是在进行下一步之前计算花费在9008 905
&上的时间9008 1111
我正在像这样阅读它
#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>
using namespace std;
vector<string> &SplitString(const string &s, char delim, vector<string> &elems)
{
stringstream ss(s);
string item;
while (getline(ss, item, delim))
{
elems.push_back(item);
}
return elems;
}
int main(int argc, const char * argv[])
{
ifstream CustJ("/Users/Rr/p/B/Sample 1.txt");
string str;
string elements;
CustJ.seekg(0, ios::end);
str.reserve(CustJ.tellg());
CustJ.seekg(0, ios::beg);
str.assign((istreambuf_iterator<char>(CustJ)),
istreambuf_iterator<char>());
if (str.length() > 0)
{
vector<string> lines;
SplitString(str, '\n', lines);
vector<vector<string> > LineElements;
for (auto it : lines)
{
vector<string> elementsInLine;
SplitString(it, ',', elementsInLine);
LineElements.push_back(elementsInLine);
}
//this displays each element in an organized fashion
//for each line
for (auto it : LineElements)
{
//for each element IN that line
for (auto i : it)
{
//if it is not the last element in the line, then insert comma
if (i != it.back())
std::cout << i << ',';
else
std::cout << i;//last element does not get a trailing comma
}
//the end of the line
std::cout << '\n';
}
}
else
{
std::cout << "File Is empty" << std::endl;
return 1;
}
system("PAUSE");
return 0;
}
我不确定这是否是解决此问题的最佳方法。
谢谢。