将一组数据拆分为不同的类别
split a set of data into different category
我有一个.txt文件,它是一组数据(2000行(示例,如下所示
时间,价格($(,数量,价值($(,条件
10/10/2013 04:57:27 PM,5.81,5000,29050.00,LT XT
2013/10/10 04:48:05 PM,5.81,62728,364449.68,SX XT
2013/10/10 04:10:33 下午,5.81,451,2620.31,
2013/10/10 04:10:33 下午,5.81,5000,29050.00,
如何将它们分成每个类别的块?例:
体积 - (卷的全部数据(
价格 - (价格的完整数据(
我知道需要使用分隔符进行拆分,但我不知道该怎么做(需要稍微推动编码(。我正在使用向量按行存储这些数据集。
任何帮助将不胜感激。谢谢
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
#include<sstream>
//#include "Header.h"
using namespace std;
int main()
{
//open file
ifstream inFile("Course_of_sale.txt", ifstream::in);
// if can read
if (inFile.good())
{
std::vector<string> strVector;
//create vector
string line;
//read and push to back
while (getline(inFile, line))
{
getline(inFile, line);
strVector.push_back(line);
}
vector<string>::iterator it;
for (it = strVector.begin(); it < strVector.end(); it++)
{
cout << *it << endl;
}
stringstream ss(line);
string field;
while (getline(ss, field, ','))
{
getline(inFile, line);
strVector.push_back(line);
}
cout << "nSize : " << strVector.capacity() << " elements n";
}
system("Pause");
目前只能设法从文件读取。(此代码是从 SO 复制的(
这是我
的尝试。
#include <iostream>
#include <sstream>
#include <fstream>
#include <vector>
#include <string>
struct entry {
int time;
double price;
int volume;
double value;
std::string condition;
entry(const int ti, const double pr, const int vo, const double va, const std::string &co):
time{ ti }, price{ pr }, volume{ vo }, value{ va }, condition{ co }
{ }
};
std::vector<std::string> &split(const std::string &str, const char delim, std::vector<std::string> &ret) {
std::stringstream ss(str);
std::string tmp;
while (std::getline(ss, tmp, delim))
ret.push_back(tmp);
return ret;
}
int main(int argc, char **argv) {
std::vector<entry> vec;
std::ifstream file("test.txt");
std::string line;
std::vector<std::string> str;
while (std::getline(file, line)) {
std::vector<std::string>().swap(str);
split(line, ',', str);
std::string tmp{ "" };
if (str.size() > 4)
std::string tmp(str.at(4));
entry e(
std::stoi(str.at(0)),
std::stod(str.at(1)),
std::stoi(str.at(2)),
std::stod(str.at(3)),
tmp
);
vec.push_back(e);
}
system("pause");
return 0;
}
只有当你离开条件时,它才是容错的。
相关文章:
- 跨线程共享数据集与拆分每个线程的数据
- 在 CGAL 中将对数据类型拆分为其元素
- 在qt中使用'n'字符拆分数据
- QbyteArray 数据拆分
- 浏览器可以将有效载荷数据拆分为多个Websoket帧
- 如何要求字符串流不要在引号中拆分数据 (C++)
- C++ - 将 int 拆分为两种较小的数据类型
- 将大型数据文件拆分为多个小文件(文本格式)
- 将 std::map 的数据拆分为多个 std::vector
- 将一组数据拆分为不同的类别
- C++将具有非常相关数据的类 Tree 拆分为两个类
- C++ OpenMP:将 for 循环拆分为静态偶数块,并在最后连接数据
- 拆分OpenCV Mat而不复制数据
- 拆分文件并将数据传递给其他类
- 对rope数据结构进行拆分操作
- 当使用Boost ASIO时,有效载荷拆分为两个TCP数据包,当它适合MTU时
- 如何将数据文件拆分为多个部分
- QStringList::将包含数据的长字符串拆分为许多不同的QString
- C++停止CAsyncSocket将单个大数据包拆分为多个小数据包
- 将拆分的 TCP 数据包与闪存套接字重新组合