Estoy contento que puse ayudarte.
No consigo compilar tu codigo, pero si tienes el resultado que esperes, es lo más importante.
Una cosita: si conoces el formato exacto de tu fichero, puedes hacer mucho mas sencillo. Algo asi por ejemplo:
Código:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
int main( int argc, char* argv[] )
{
string line = "10:00:02,128-18:00:02,234"; // linea leida en el fichero
vector< int > vi(8); // vi[0] = hora1, vi[1] = minuto1, ..., vi[4] = hora2, etc...
size_t index = 0; // indice en el array vi
size_t cursor = 0; // posicion en la cadena
while ( index < 8 )
{
size_t offset = ( index == 3 || index == 7 ) ? 3 : 2; // calculo del offset
istringstream iss( line.substr( cursor, cursor + offset ) ); // construcion del stringstream
iss >> vi[index++]; // conversion
cursor += offset + 1; // ubicacion del cursor
}
// ya está: ahora vi continene los valores querridas
/* eso es tu calculo (no entiendo bien lo que está supuesto hacer pero
si obtienes el buen resultado, es que es bueno):
int horas = ( ( hora1 * 10 ) + hora2 ) ) * 1200;
int minutos = ( ( minuto1 * 10 ) + minuto2 ) ) * 60;
int segundos = ( segundo1 * 10 ) + segundo2;
int resultado = horas + minutos + segundos;*/
// y ahora seria asi:
int horas = ( ( vi[0] * 10 ) + vi[4] ) * 1200;
int minutos = ( ( vi[1] * 10 ) + vi[5] ) * 60;
int segundos = ( vi[2] * 10 ) + vi[6];
int resultado = horas + minutos + segundos;
return 0;
}