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#include <stdio.h>
#include <windows.h>
#include<string.h>
#define DIN 20
void abrirlab();
int main ()
{
abrirlab();
}
void abrirlab()
{
FILE *filePtr;
int dimx,dimy,longitud,i,j;
char fileName[DIN],car;
printf("COMPROBADOR DE LABERINTOS\nEscribe el nombre del archivo: ");
if((filePtr
=fopen(fileName
,"r"))!=NULL
) {
fscanf(filePtr
,"%d %d",&dimx
,&dimy
); char lab[dimx][dimy];
fseek(filePtr
, 0, SEEK_SET
); while(fgetc (filePtr
)!= '\n') {
}
for(i=0;i<dimx;i++)
{
for(j=0;j<dimy;j++)
{
fscanf(filePtr
,"%c",&lab
[i
][j
]); }
}
/*
for(i=0;i<dimx;i++)
{
for(j=0;j<dimy;j++)
{
printf("%c",lab[i][j]);
}
*/
}
else
{
printf("El archivo se puede abrir %s\n",fileName
); }
}
El archivo txt seria por ejemplo:
10 10
##########
# # #
# # # #
# # # # #
# # # #
#@# # ##
###*# #
## ##
# #
##########