关于数据:
数据示例:
AnIdentifier,1,G,2014-10-01,11:00,,,3,7555,1,14535,1 .. etc
我想知道以C ++方式将这些数据读入结构的最佳方法是什么。我之前使用过sscanf,但我认为调用的格式参数变得相当大而且混乱。
我还尝试将字符串拆分为向量中的标记,然后使用向量中的值逐个设置结构中的值,但之后我没有很好的自动数据转换。
我看到了重载>>的示例结构中的运算符:
struct MyDataStruct
{
std::string Id;
char D;
char S;
std::string Date; // Preferably these could be combined
std::string Time; // to a time_t?
bool Running;
int Runtime;
...
...
friend std::istream &operator>>(std::istream &is, MyDataStruct &ds) {
return is >> Id >> D >> S >> Date >> Time >> Running >> Runtime ...
}
}
我的C ++知识是有限的(习惯于C#),所以当我在阅读结构时想要忽略的字段时,我开始挣扎。在阅读is
之后,我希望在阅读Time
之前跳过Running
中的5个字段。
并说我希望用time_t而不是两个字符串Date
和Time
(它们在接收数据中表示的方式)来表示时间戳,这可以直接在运算符中完成读入结构时会超载吗?