AYUDA leer carácter a carácter un fichero y guardarlo en una matriz C++

Iniciado por slavinyo, 8 Junio 2013, 18:25 PM

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

slavinyo

Buenas gente, necesito que me ayuden para leer un fichero carácter a carácter y a la vez almacenarlo en una matriz.

int** LeerFichero_Matriz(int &filas, int &colum)
{

char nombrefichero[50]="laber3.txt"; // nombre del fichero de entrada
char dato[20]; // palabra que se lee del fichero
ifstream f; // variable del tipo fichero
int **matriz; // matriz[tr][/tr] de adyacencia del grafo
int i,j;

// cout << "Introduce el nombre del fichero con la matriz de pesos: ";
// cin >> nombrefichero;
f.open(nombrefichero);
  if (!f)
  {
    cout << "Fallo al abrir el fichero " << nombrefichero << endl;
    cout << "Verifique la ruta de acceso y el nombre." << endl;
   filas = 0;
   colum = 0;

    return (NULL);
  }

  f >> filas; // leemos el filas
  f >> colum; // leemos el columnas

// reservamos memoria
matriz = new int* [filas+1];
for (i=1;i<=filas;i++)
matriz[i]= new int [colum+1];

// leemos la matriz
for (i=1; i<=filas; i++)
{
   for (j=1; j <=colum ; j++)
    {
       f >> dato;
       matriz[i][j] = atoi(dato);
    }
}

//imprimimos la matiz
   for (i=1; i<=filas; i++)
   {
     for (j=1; j <=colum ; j++)
      {
         cout<<matriz[i][j]<<" ";
       }
      cout<<endl;
    }

  if (!f)
  {
  cout << "Fallo en la lectura del fichero " << nombrefichero << endl;
  cout << "Verifique el contenido del fichero." << endl;
  filas = 0;
    return (NULL);
  }

return (matriz);
}


y para la funcion anterior la estructura del fichero es asi:
4 5
1 3 4 5 3
1 3 4 5 3
1 3 4 5 3
1 3 4 5 3

donde el primer 4 indica el numero de FILAS y el 5 numero de COLUMNAS, que se recogen en los  parámetros de la función.

pero necesito modificar el codigo para que haga lo mismo pero con una matriz de caracteres asi:

8 10
.*....**..
...**....*
.*..*.**.*
....*..*..
.****....*
.**...*..*
.**.***..*
......*...

donde el 8 y el 10 son FILAS y COLUMNAS.
He hecho cambios, como declarar la funcion tipo char**, declarar matriz tipo char, y reservar memoria para una matriz de tipo char, pero se que hay que tocar algo mas con la funcion "getc" pero no me sale nada...

Muchas Gracias a todos! Un saludo.