Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: bash en 26 Abril 2015, 17:06 pm



Título: duda: Array multidimensionales
Publicado por: bash en 26 Abril 2015, 17:06 pm
buenas a todos aqui !!

espero y deseo que todos esten bien !! ejej
bien tengo una duda nueva estoy tratando de  leer unos caracteres desde un fichero y los estoy tratando de capturar en un arreglo de dos dimensiones en otros lenguajes como java y c# me ha funcionado bien pero en c++ que es mi caso o no me muestra nada y me imprime como ordeno o simplemente me muestra numero que supongo que son las direcciones de memoria de las variables dentro del arreglo posteo el codigo para ver si alguien me dice en que me equivoco , gracias e ante mano..


Código
  1. void cargarArray()
  2. {
  3.    fstream entrada("map.txt", ios::in);
  4.     if(!entrada.is_open())
  5.        cout <<"dddd";
  6.  
  7.    char temp =NULL;
  8.    char arreglo2d[20][20];
  9.    for(int t(0); t<20;t++){
  10.      for(int i(0); i < 20 ; i++)
  11.       {
  12.          entrada << temp;
  13.          arreglo2d[t][i] = temp;
  14.       }
  15.    }
  16.  
  17.  
  18.    for(int t(0); t<20;t++){
  19.       cout <<'\n';
  20.      for(int i(0); i < 20 ; i++)
  21.       {
  22.  
  23.          cout << arreglo2d[t][i] <<' ';
  24.       }
  25.    }
  26.  
  27.  
  28. }

esto compila pero no me presenta el resultado esperado !!


Título: Re: duda: Array multidimensionales
Publicado por: engel lex en 26 Abril 2015, 17:13 pm
Código:
no tengo para probar... pero estoy seguro que esto no está bien

[code=cpp]for(int t(0); t<20;t++){
for(int i(0); i < 20 ; i++)

está haciendo un cast tipo int a una funcion llamada t a quien le pasas el valor 0...

se recomienda no declarar variables dentro de la declaración del ciclo...

si quieres mantener el estilo sería

Código
  1. for(int t = 0; t<20;t++){
  2. for(int i = 0; i < 20 ; i++)

y en el segundo ciclo no se declara... pero lo recomendable es

Código
  1. int t, i;
  2. for(t = 0; t<20;t++){
  3. for(i = 0; i < 20 ; i++)

la tercera forma sería
Código
  1. int t=0, i=0;
  2. for(; t<20;t++){
  3. for(; i < 20 ; i++)
[/code]


Título: Re: duda: Array multidimensionales
Publicado por: bash en 26 Abril 2015, 17:24 pm
donde esta t es una variable y la estoy inicializando.

lo cambie pero como quiera me da lo mismo .


Título: Re: duda: Array multidimensionales
Publicado por: engel lex en 26 Abril 2015, 17:30 pm
entonces explica que debería darte y que da


Título: Re: duda: Array multidimensionales
Publicado por: bash en 26 Abril 2015, 18:17 pm
0000000...000
11111....1111
...
00000000000
es simplemente un archivo de texto plano
que me deberia de carga esto.


Título: Re: duda: Array multidimensionales
Publicado por: ivancea96 en 26 Abril 2015, 18:23 pm
No es:
Código
  1. entrada << temp;

Eso es para meter datos al fichero.

Es:
Código
  1. entrada >> temp;


Título: Re: duda: Array multidimensionales
Publicado por: bash en 26 Abril 2015, 19:32 pm
si lo corregido aun continua , seguire investigando y luego posteo.


Título: Re: duda: Array multidimensionales
Publicado por: ivancea96 en 26 Abril 2015, 19:37 pm
si lo corregido aun continua

¿Em?