Ver Mensaje Individual
  #8 (permalink)  
Antiguo 29/09/2010, 16:34
Avatar de r0d
r0d
 
Fecha de Ingreso: noviembre-2007
Mensajes: 86
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: ayuda para obtener el valor de un char array

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;
}
__________________
Alicia: Sólo quiero saber que camino debo tomar.
Gato risón: Pues... depende mucho de donde quieras ir.

Mi página web

Última edición por r0d; 29/09/2010 a las 16:41