Obtener primer integer de cada linea

Iniciado por JuszR, 23 Noviembre 2010, 19:01 PM

0 Miembros y 1 Visitante están viendo este tema.

JuszR

Tengo un archivo de texto (creado con el programa) así:
CitarHORAS TIEMPO
----------------------------------------------------
2 3.00-5.00
10 6.30-16.30

Necesito obtener solo el primer integer de cada línea y hacer une operación (2
10...).

Este es el código que tengo hasta ahora:
Código (cpp) [Seleccionar]
fstream haceCuenta(nombArchivo, ios::in | ios::app);

while(haceCuenta)
{
std::string lineas;
getline(haceCuenta, lineas);
}
- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]

Beakman

esta bien.
Ahora para obtener el numero entero tenes que dividir la cadena cada vez que se encuentre un espacio.
Creo que se separa por tabs, como te vi en el post anterior.

Entonces cada parte la guardas en una cadena y después la pasas a numero con la funcion "atoi(cadena_destino, cadena_fuente);"

piou

Puedes volcar la cadena a un array de chars y leer de letra en letra hasta que haya un espacio.

JuszR

Bueno pongo el código:
Código (cpp) [Seleccionar]
vector<int> vint;
int n;
string str;
while(!haceCuenta.eof() && !haceCuenta.fail())
{
if(!isdigit(haceCuenta.peek()))
{
getline(haceCuenta, str);
continue;
}
haceCuenta >> n;
vint.push_back(n);
getline(haceCuenta, str);
}
if(!haceCuenta.eof())
{
cout << "Error leyendo el archivo" << endl;
return -1;       
}
int totalHoras=0;
for(vector<int>::size_type x=0; x<vint.size(); ++x)
{
cout << setw(2) << vint[x] << endl;
totalHoras += vint[x];
}
- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]

piou

En vez de guardar la cadena introducida en un string (a mi no me gustan), guárdala en un char[], y luego recórrelo hasta encontrar un espacio

JuszR

¿Y se puede saber porqué no te gustan?
- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]

piou

Me da la sensación de que tengo menos control que con un array de chars, pero bueno, serán cosas mias XD. De todos modos en tu caso si lo haces como te he dicho sale más fácil