Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2012, 11:15
fxmarquez
 
Fecha de Ingreso: mayo-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Rellenar una matriz desde un archivo .txt C

Hola, soy principiante en esto de la programación en C, y llevo atascado con un problema varios dias, básicamente, estoy intentando rellenar una matriz con caracteres (#,@,*,y espacios) abriendo un archivo txt que tiene como datos dichos caracteres.La cuestion es que al comprobar si la matriz se ha rellenado correctamente, veo que me imprime bien el recinto(hasta una determinada posicion), pero al final imprime basura y dependiendo del fichero a veces ni lo imprime completo.., y no se que hacer... si alguien ve mi error... muchisimas gracias de antemano!
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include<string.h>
  4. #define DIN 20
  5. void abrirlab();
  6. int main ()
  7. {
  8.     system("color 0e");
  9.     abrirlab();
  10.     system("PAUSE");
  11. }
  12. void abrirlab()
  13. {
  14.      FILE *filePtr;
  15.      int dimx,dimy,longitud,i,j;
  16.      char fileName[DIN],car;
  17.      printf("COMPROBADOR DE LABERINTOS\nEscribe el nombre del archivo: ");
  18.      scanf("%s",fileName);
  19.      
  20.     if((filePtr=fopen(fileName,"r"))!=NULL)
  21.     {
  22.  
  23.         fscanf(filePtr,"%d %d",&dimx,&dimy);
  24.         char lab[dimx][dimy];
  25.    fseek(filePtr, 0, SEEK_SET);
  26.    while(fgetc (filePtr)!= '\n')
  27.    {
  28.    }
  29.    for(i=0;i<dimx;i++)
  30.    {
  31.                       for(j=0;j<dimy;j++)
  32.                       {
  33.                                          fscanf(filePtr,"%c",&lab[i][j]);
  34.                       }
  35.    }
  36.    
  37.    /*
  38.     for(i=0;i<dimx;i++)
  39.    {
  40.                       for(j=0;j<dimy;j++)
  41.                       {
  42.                                          printf("%c",lab[i][j]);
  43.                       }
  44. */
  45.    fclose(filePtr);
  46.     }
  47.     else
  48.     {
  49.         printf("El archivo se puede abrir %s\n",fileName);
  50.     }
  51. }
El archivo txt seria por ejemplo:
10 10
##########
# # #
# # # #
# # # # #
# # # #
#@# # ##
###*# #
## ##
# #
##########

Última edición por fxmarquez; 01/05/2012 a las 12:52