I have the following code that read input from txt file as follow
Paris,Juli,5,3,6 
Paris,John,24,2 
Canberra,John,4,3 
London,Mary,29,4,1,2
my code is to load the data into map then I want to print the map content to make sure that it has been inserted correctly, I check the vaue of m as it is used during splitting the line. However, during the execution I get this as continues 0s which means it is never enter the while loop. I have used this part of code before and it works. I could not find where I've made the mistake.
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <vector>
#include<map>
using namespace std;
struct info {
       string Name;
       int places;// i will use the binary value to identfy the visited places example 29 is 100101 
             // this means he visited three places (London,LA,Rome)   
       vector<int> times; // will represent the visiting time,e.g. 1,2,5 means london 1 time, LA 
                   // twice and Rome five times 
       };
map<string,vector<info> > log;
map<string,vector<info> >::iterator i;
fstream out;
int main() {
    out.open("log.txt", std::ios::in | std::ios::out | std::ios::app);
            string line;
            char* pt;
            string temp[19];
    // for each line in the file 
    while (!out.eof())
    {
         getline(out,line);//read line from the file
         pt=strtok(&line[0],"," );//split the line
         int m=0;
         while (pt != NULL)
         {
         temp[m++] = pt; // save the line info to the array
         cout<<m<<"  ";
         pt = strtok (NULL, ",");
         }
         cout<<m<<"  "; // during the execution I get this as continues 0s which means it is never enter the while loop
         info tmp;
         // read the other data
         tmp.Name=temp[1];
         tmp.places=atoi(temp[2].c_str());
         for ( int i=3;i<=m;i++)
         { 
         tmp.times.push_back(atoi(temp[i].c_str()));
         }         
         // create a new object 
         log[temp[0]].push_back(tmp); 
         }
 vector<int>::iterator j; 
    for(i=log.begin();i!=log.end();i++) {
    cout<< "From "<< i->first<<" city people who travels: "<<endl; 
    for (size_t tt = 0; tt < (i->second).size(); tt++) {
    cout<< (i->second[tt]).Name<< " went to distnations "<< (i->second)[tt].places<<" \nwith the folloing number of visiting time "; 
    for (j=((i->second[tt]).times).begin();j!= ((i->second[tt]).times).end();j++) 
    cout<<*j<<" ";
     } 
    }  
          system("PAUSE");
          return 0;
          }
 
     
     
     
    