所以我这个文件有多个这样的日期:
Data
------
abc123
defgh
wz127bdn
我想知道如何从这个文件中读取并将日,月和年存储为3个单独的整数。
感谢。
答案 0 :(得分:3)
如果istream foo
包含您要使用的日期get_time
:
vector<tm> bar;
tm i;
while(foo >> get_time(&i, "%d.%m.%Y")) bar.push_back(i);
当然,防御性输入是最佳实践,对于像日期这样的复杂输入类型,这样做可能非常具有挑战性。如果你正在努力,你会发现这有用:https://stackoverflow.com/a/29413535/2642059
答案 1 :(得分:0)
您可以尝试这样的事情:
// construct stream object and open file
std::ifstream ifs(file_name.c_str());
// check if opened successfully
if (!ifs) std::cerr <<"Can't open input file!\n";
int year, month, day;
char dot;
// extract date
ifs >> day >> dot >> month >> dot >> year;
// check input format
if (dot != '.') // add ranges for month and days validity
{
std::cerr <<"Wrong date format!\n";
}
上面的代码可以放在一个(while
)循环中,逐行读取文件。