(Sorry if my sentances are full of mystakes, I'll do my best to write something readable) Hi, I'm working on a function that reads a file and store every line whose first char is ":" and removes every dash contained in the string. Every time this kind of line is found, push_back() is used to store this line in a vector. The problem is that, every time push_back() is used, all the elements in the vector takes the value of the last one. I don't understand why does it happen. Here's the code :
 string listContent;
 size_t dashPos;
 vector<char*>cTagsList;
 while(!SFHlist.eof())
 {
    getline(SFHlist,listContent);
    if(listContent[0]==':')
    {
        listContent.erase(0,1);
        dashPos = listContent.rfind("-",string::npos);
        while(dashPos!=string::npos)
        {
            listContent.pop_back();
            dashPos = listContent.rfind("-",string::npos);
        }
        char* c_listContent = (char*)listContent.c_str();
        cTagsList.push_back(c_listContent);
    }
 }
I first thought it was a problem with the end of the file but aborting the searching process before reaching this point gives the same results.
 
    