Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/05/2014, 12:40
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 6 meses
Puntos: 61
Respuesta: leer fichero y guardarlo en matriz (2)

Si lo resolvieras en C++, este problema podria resolverse sin usar tanto malabarismo.
Re-usando las mismas ideas que en una discusion anterior, puedes:

- reemplazar los parentesis por espacios en blanco, lo mismo con las comas. Con ello te beneficias de no tener que tokenizar y puedes leer todo directamente usando un istringstream (ver discusion anterior). El ultimo parentesis no es necesario reemplazarlo, realmente.

- Una vez que has separado todo con espacios ya puedes hacer llegar los datos a donde quieras, por ejemplo a variables de tipo entero. En tu caso, campos enteros de una struct.

No está completo todo, pero la idea es parecido a esto:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <sstream>
  3. #include <fstream>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     string line;
  11.     ifstream f ("archivo.txt");
  12.     if (!f.is_open()) exit(1);
  13.  
  14.     int v1, v2, n;
  15.     while ( getline (f,line) ) {
  16.         cout << "Lei: " << line << '\n';
  17.         replace( line.begin(), line.end(), '(', ' ');
  18.         replace( line.begin(), line.end(), ',', ' ');
  19.         istringstream ss(line);
  20.         ss >> v1 >> v2;
  21.         cout << " v1: " << v1 << " v2: " << v2 << " { ";
  22.         while( ss >> n ) {
  23.             cout << n << " ";
  24.         }
  25.         cout << "}" << endl;
  26.     }
  27.  
  28.     f.close();
  29. }

Supongo que este es el empujón necesario y suficiente para empezar.
__________________
Visita mi perfil en LinkedIn