Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SirLancelot53 en 23 Enero 2014, 01:53 am



Título: Modificar una matriz dinamica
Publicado por: SirLancelot53 en 23 Enero 2014, 01:53 am
Hola, he estado haciendo un programa en donde tengo que leer una matriz (solo con caracteres) de un archivo .txt (que se encuentra en la misma carpeta del programa) e imprimirla en pantalla; pero además de eso tengo que delimitar esa matriz con signos de interrogación (¿) cosa que no he podido hacer. Este es el código que llevo hasta el momento (en el archivo.txt las dos primeras lineas son las filas y columnas)
Código
  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std;
  4.  
  5. void crear_mundo (char**M, int f, int c, istream& a, int i, int j)
  6. {
  7.    for (i = 0; i < f; i++)
  8.    {
  9.        for (j = 0; j < c; j++)
  10.        {
  11.                a>>M[i][j];
  12.        }
  13.    }
  14.    for (i = 0; i < f; i++)
  15.    {
  16.        for (j = 0; j < c; j++)
  17.        {
  18.            cout << M[i][j] << " ";
  19.        }
  20.        cout << endl;
  21.    }
  22.    delete [] M;
  23. }
  24.  
  25. int main()
  26. {
  27.    ifstream a("mundo.txt");
  28.    int i,j,f,c;
  29.    a>>f;
  30.    a>>c;
  31.    char **M = new char* [f];
  32.    for (i = 0; i < f; i++)
  33.    {
  34.        M[i] = new char[c];
  35.    }
  36.    crear_mundo (M, f, c, a, i, j);
  37.  
  38.    return 0;
  39. }
  40.  

¿De que manera podria hacerlo?
Agradezco su ayuda!!!!!


Título: Re: Modificar una matriz dinamica
Publicado por: amchacon en 23 Enero 2014, 13:09 pm
Los dos últimos fors sobran:

Código
  1. void crear_mundo (char**M, int f, int c, istream& a, int i, int j)
  2. {
  3.   for (i = 0; i < f; i++)
  4.   {
  5.       for (j = 0; j < c; j++)
  6.       {
  7.           a>>M[i][j];
  8.           cout << M[i][j] << " ";
  9.       }
  10.       cout << endl;
  11.   }
  12.   delete [] M;
  13. }

En cuanto a la interrogacion, simplemente escribirlas antes y despues del segundo for:

Código
  1. [code=cpp]void crear_mundo (char**M, int f, int c, istream& a, int i, int j)
  2. {
  3.   for (i = 0; i < f; i++)
  4.   {
  5.       cout<<"¿";
  6.       for (j = 0; j < c; j++)
  7.       {
  8.           a>>M[i][j];
  9.           cout << M[i][j] << " ";
  10.       }
  11.       cout << "?"<<endl;
  12.   }
  13.   delete [] M;
  14. }
[/code]


Título: Re: Modificar una matriz dinamica
Publicado por: SirLancelot53 en 23 Enero 2014, 16:53 pm
Gracias, me es de gran ayuda ahora estoy intentando delimitarlo por arriba y abajo, vuelvo y reitero, muchas gracias.