从数据文件解析时间戳并存储在向量中
Parsing timestamps from data file and storing in vector
我有一些时间戳格式为 yyyy-mm-dd hh:nn:ss 的文本文件。
我正在创建一个 class 并且我想要一个构造函数,它采用文本文件的名称并将时间(而不是日期)保存在向量中。我尝试了以下代码,但是当我尝试创建这种类型的对象时(例如数据测试("file.txt")),我的编译器会报错。
class data {
vector<tm> timevec;
public:
data (ifstream& in) {
tm tt;
while (in>>get_time(&tt,"%H:%M:%S"));
timevec.push_back(tt);
}};
我确定我上面的代码中有几个问题,但请放过我;我是 c++ 的新手。
如上所述,当我尝试创建这种类型的对象时,我的编译器会报错——它说传递的参数没有已知的转换。
我很好奇,当您在描述中说要将文件名传递给构造函数时,为什么要传递文件流。另外,您甚至需要为 tm 类型而烦恼吗?这是我认为符合要求的更简单的解决方案:
#include <memory>
#include <string>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
class TimeData
{
public:
explicit TimeData(const string& filePath)
{
ifstream inFile(filePath);
if (!inFile.is_open())
exit(0);
string date(""), time("");
while (inFile >> date >> time)
{
times.push_back(time);
}
}
void Print()
{
for (const auto& time : times)
cout << time << endl;
}
private:
vector<string> times;
};
int main()
{
unique_ptr<TimeData> td = make_unique<TimeData>("file.txt");
td->Print();
getchar();
}
我有一些时间戳格式为 yyyy-mm-dd hh:nn:ss 的文本文件。 我正在创建一个 class 并且我想要一个构造函数,它采用文本文件的名称并将时间(而不是日期)保存在向量中。我尝试了以下代码,但是当我尝试创建这种类型的对象时(例如数据测试("file.txt")),我的编译器会报错。
class data {
vector<tm> timevec;
public:
data (ifstream& in) {
tm tt;
while (in>>get_time(&tt,"%H:%M:%S"));
timevec.push_back(tt);
}};
我确定我上面的代码中有几个问题,但请放过我;我是 c++ 的新手。 如上所述,当我尝试创建这种类型的对象时,我的编译器会报错——它说传递的参数没有已知的转换。
我很好奇,当您在描述中说要将文件名传递给构造函数时,为什么要传递文件流。另外,您甚至需要为 tm 类型而烦恼吗?这是我认为符合要求的更简单的解决方案:
#include <memory>
#include <string>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
class TimeData
{
public:
explicit TimeData(const string& filePath)
{
ifstream inFile(filePath);
if (!inFile.is_open())
exit(0);
string date(""), time("");
while (inFile >> date >> time)
{
times.push_back(time);
}
}
void Print()
{
for (const auto& time : times)
cout << time << endl;
}
private:
vector<string> times;
};
int main()
{
unique_ptr<TimeData> td = make_unique<TimeData>("file.txt");
td->Print();
getchar();
}