В следующем коде, что делает эта функция, в частности, что делает .erase?
ofstream output((filename.erase(filename.size()-4)).c_str(),ios::binary);