Para un trabajo de la universidad tengo lo siguiente:
Un archivo dat (en realidad es un csv que se le ha cambiado la extension a dat) con los datos asi:
1;-1;-1;344;244;-1;-1115;920;-1
2;-1;350;-1;-1; ... .... sigue y sigue
Es una matriz de adyacencia para un ejercicio de caminos minimos en DIJSKTRA.
Lo que necesito es pasar dicho archivo a una matriz dentro del programa para seguir trabajando con ella, y me esta costando ya mas de lo que me esperaba.
Yo lo que tengo es lo siguiente:
Código:
Lo he puesto en principio como vector porque no se me ocurria como hacerlos como matriz, y aún así tampoco funciona correctamente ya que cuando llega al final de la linea, en vez de pasar a otra celda, almacena en la misma celda el ultimo digito, el salto de linea y el primer digito de la siguietne linea...#include <iostream> #include <fstream> #include <string> using namespace std; int main(int argc, const char * argv[]) { string matrizAdyacencia[400]; ifstream fmatriz; fmatriz.open("matrizInt.dat"); //Matriz que cada fila es: 1;-1;-1;244;... etc siendo -1 infinito. if (fmatriz.good()) { cout << "el fichero se ha abierto correctamente" << endl; } if (fmatriz.fail()) { cout << "ERROR abriendo el fichero" << endl; } int i=0; string texto; string linea; while (!fmatriz.eof()) { getline(fmatriz, texto, ';'); matrizAdyacencia[i]=texto; cout << matrizAdyacencia[i] << " " ; i++; } fmatriz.close(); return 0; }
Alguna idea de como hacerlo?
Saludos y gracias!