I want to read from a text file in the following format:
1,1,1
2,2,2
3,3,3
4,4,4
5,5,5
Parse its rows into a struct:
//Where the loaded data goes
struct process_stats{
    int process_number  = UNINITIALIZED;
    int start_time      = UNINITIALIZED;
    int cpu_time        = UNINITIALIZED;
};
And then add the structs to a vector.
I am currently using an overloaded extraction operator for istream to retrieve the numbers, like such:
//Operator to read from file into struct and then add to vector
std::istream& operator>>(std::istream& is, process_stats& nums)
{     
    is >> nums.process_number >> nums.start_time >> nums.cpu_time;
    return is;
}
And then I want to add those numbers straight into the vector 'stats'. This is what I have so far:
#include <fstream>
#include <iostream>
#include <vector>
#include <iterator>
#include "Utilities.h"
//Vector to hold process_stats structs
std::vector<process_stats> stats;
//Operator to read from file into struct and then add to vector
std::istream& operator>>(std::istream& is, process_stats& nums)
{
    char comma;
    is >> nums.process_number >> comma >> nums.start_time >> comma >> 
        nums.cpu_time;
    return is;
}
//Loads data from file into process_stats struct, which is then added to 
//vector stats
int loadData(const char* filename)
{
    //Result to be returned:
    //  SUCCESS - file successfully opened,
    //  COULD_NOT_OPEN_FILE - file could not be opened.
    int result;
    std::fstream inFile(filename);
    //Check if file is open - grab data
    if(inFile)
    {
         std::copy(std::istream_iterator<process_stats>(inFile),
                    std::istream_iterator<process_stats>(),
                    std::back_inserter(stats));
          inFile.close();
          result = SUCCESS;
    }
    //Could not open file
    else
    {
        result = COULD_NOT_OPEN_FILE;
    }
    return result;
}
I tried referring to this post: Read file line by line But so far, no luck... Am I missing something, or is there a better way to implement this?
 
    