Reading formated date from a file C++

后端 未结 2 1224
南方客
南方客 2020-12-12 06:54

So I have this file with multiple dates like this:

2.10.2015
13.12.2016
...

I\'m wondering how to read from this file and store day, month

相关标签:
2条回答
  • 2020-12-12 07:28

    You could try something like this:

    // 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";
    }
    

    The above code could be placed in a (while) loop reading the file line by line.

    0 讨论(0)
  • 2020-12-12 07:29

    Given an istream foo which contains the dates you'll want to use get_time:

    vector<tm> bar;
    tm i;
    
    while(foo >> get_time(&i, "%d.%m.%Y")) bar.push_back(i);
    

    Live Example

    Of course defensive input is best practice, and doing that can be very challenging for a complex input type like a date. If you're going for that you might find this helpful: https://stackoverflow.com/a/29413535/2642059

    0 讨论(0)
提交回复
热议问题