/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

con

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
erci



Registrado: 15 Nov 2007
Mensajes: 5

MensajePublicado: 23/11/2007 11:45 am
Título: con

Por ejemplo tengo estos datos en el archivo
4 4 // lo cual me indica el tamaño de una matriz
0100 // la matriz
0000
0001
0100

en base a este archivo quiero construir una matriz para despues utilizar los datos que quedan almacenados en la matriz.

#include <stdio.h>

//Variables Globales
int mapa[100][100];
int filas;
int columnas;


// Programa Central
int main ()
{

FILE *fichero;
fichero = fopen("origen.txt","a+");
fscanf (fichero, "%i %i %i", &filas, &columnas);
printf (" %i", filas-1);
system ("pause");
}

//Construir matriz

void construye_matriz()
int t;
int s;
int mapa[filas][columnas];
{
for(t=0;t<filas;t++)
for (s=0;t<columnas;s++)
mapa[t][s];
}
_________________
Aprendiendo a programar en C


Ultima edición por erci el 03/12/2007 7:45 am; editado 1 vez
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3837
Ubicación: Mexico

MensajePublicado: 24/11/2007 6:17 am
Título:

Para ayudarte con la lectura del archivo primero tienes que describirnos la estructura exacta de este.

Un error importante en el programa es utilizar variables para definir las dimensiones de un array:
Código:
int filas;
int columnas;

/* ... */

int mapa[filas][columnas];

Ya que en C (C90) no es posible utilizar variables para indicar las dimensiones del array (en C99 si seria posible pero el valor de estas al iniciar el programa seria cero).

Si la estructura del archivo de texto es:

1) Primera fila con solo dos valores (tipo int) indicando el numero de filas y columnas.

-Y-

2) Lineas subsiguientes con todos los valores (tipo int) de cada una de las filas.

Por ejemplo:
Código:
3 3
0 1 2
3 4 5
6 7 8


Una forma de leer en memoria esos datos es primero declarando un array con el maximo numero de filas y columnas; a continuacion se leerian el numero actual de filas y columnas seguido (mediante dos bucles for) de la lectura del valor cada una de estas.

Un ejemplo en C estandar es:
Código:
#include <stdio.h>
#include <stdlib.h>

#define NUM_MAX_FILAS  10
#define NUM_MAX_COLS   10

int main(void)
{
   FILE *entrada;
   char *nom_archivo = "Datos.txt";
   int datos[NUM_MAX_FILAS][NUM_MAX_COLS];
   int num_filas;
   int num_cols;
   int i;
   int j;
   
   /* Apertura del archivo de entrada */
   if ((entrada = fopen(nom_archivo, "rt")) == NULL)
      return EXIT_FAILURE;
   
   /* Lectura del numero de filas y columnas */
   if (fscanf(entrada, "%d %d", &num_filas, &num_cols) != 2){
      perror(nom_archivo);
      fclose(entrada);
      return EXIT_FAILURE;
   }
   
   /* Lectura de cada uno de los valores */
   for (i = 0; i < num_filas; i++)
      for (j = 0; j < num_cols; j++)
         if (fscanf(entrada, "%d", &datos[i][j]) != 1){
            fprintf(stderr, "%s\n", "Datos incorrectos!");
            fclose(entrada);
            return EXIT_FAILURE;
         }
   fclose(entrada);
   
   /* Impresion de los datos en memoria */
   for (i = 0; i < num_filas; i++){
      for (j = 0; j < num_cols; j++)
         printf(" %d", datos[i][j]);
     
      putchar('\n');
   }
   
   return EXIT_SUCCESS;
}


Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
erci



Registrado: 15 Nov 2007
Mensajes: 5

MensajePublicado: 25/11/2007 1:06 pm
Título: ....

La enstructura exacta es:
la primera linea, indica el tamaño de la matriz (nose si sirve de algo o solo es un distractor, ya que el tamaño maximo que puede tomar es de 100x100)
las siguientes lineas
indican las matriz la que solo tiene elementos 1 ò 0.

Lego tengo que ocupar los datos de la matriz para hacer comparaciones.

Se agardece la respuesta.
_________________
Aprendiendo a programar en C
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com