Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ZedGe en 22 Junio 2012, 18:34 pm



Título: Problema De Lectura Y Paso A Matriz
Publicado por: ZedGe en 22 Junio 2012, 18:34 pm
Tengo un código que lee un TXT con la siguiente info

389 Santiago Iquique 25000
107 Santiago Concepcion 30000

el código es este

Código:

#include <stdio.h>
#include <stdlib.h>

void lectura(){
       FILE *archivo;   
       archivo = fopen("prueba.txt","r");   
 
       char *bloques[2][5]; //Matriz Que Contendra Todos Los Elementos
       char nombre[50]; //Variable que leerá cada palabra
       int i=0,j=0; //i: Variable Para Recorrer Las Filas De La Matriz
                     //j: Variable Para Recorrer Las Columnas De La Matriz

      while (feof(archivo) == 0){ //Mientras Queden Datos Que Leer...
                   while (2 > i){
                          while (j < 5){
                                 fscanf(archivo, "%s", nombre);
                                 bloques[i][j] = nombre; 
                                 j++; //Se Incrementa j
                          } 
                          i++;
                          j=0;
                  } 
          }
          //NO IMPRIME BIEN
          printf(bloques[0][0]);
          getch();
 fclose(archivo); //Se Cierra El Fichero
}

int main()
{   
        lectura();
        return 0;
}


El problema es que fuera del while cuando deseo imprimir nuevamente los datos que lei solo me imprime el ultimo dato leido, es lenguaje en C programo en devc+++


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: 0xDani en 22 Junio 2012, 19:01 pm
¿Porque declaras el puntero a FILE en la funcion lectura? Creo que seria mejor que le pasases como parametro asi void lectura(FILE* archivo) y despues operas con el archivo igualmente. Y creo que no lee el archivo porque a fscanf le tienes que pasar la variable por referencia (&nombre).

Saludos ;D


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: ZedGe en 22 Junio 2012, 19:06 pm
Lo de la funcion lectura esta bien, = después tengo que cambiarlo y pasarselo al main como parametro, pero aun que le ponga &nombre al fscanf la matriz no avanza, si hago esto


Código:
while (j < 4){ 
                                 fscanf(archivo, "%s", &nombre);
                                 bloques[i][j] = nombre; 
                                 printf(bloques[0][0]);
                                 j++; //Se Incrementa j
                          } 

deberia imprimir el mismo bloque[0][0] 4 veces, pero este valor va cambiando


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: 0xDani en 22 Junio 2012, 19:20 pm
¿Te refieres a que al imprimirlo te salen cuatro valores distintos?


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: ZedGe en 22 Junio 2012, 19:30 pm
claro me imprime lo que va leyendo.... como si la matriz fuera avanzando pero solo imprimo la posición


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: 0xDani en 22 Junio 2012, 19:32 pm
Pues no se pon el codigo entero.


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: ZedGe en 22 Junio 2012, 19:33 pm
emm ese que puse al principio es el código entero, es solo 1 funcion


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: 0xDani en 22 Junio 2012, 19:38 pm
Ya pero es que en el codigo que has puesto despues estaba modificado, pon lo que has ejecutado.


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: ZedGe en 22 Junio 2012, 19:57 pm
Código:
#include <stdio.h>
#include <stdlib.h>

void lectura(){
       FILE *archivo;   
       archivo = fopen("prueba.txt","r");   
 
       char *bloques[2][5]; //Matriz Que Contendra Todos Los Elementos
       char nombre[50]; //Variable que leerá cada palabra
       int i=0,j=0; //i: Variable Para Recorrer Las Filas De La Matriz
                     //j: Variable Para Recorrer Las Columnas De La Matriz

      while (feof(archivo) == 0){ //Mientras Queden Datos Que Leer...
                   while (2 > i){
                          while (j < 5){
                                 fscanf(archivo, "%s", nombre);
                                 bloques[i][j] = nombre; 
                                 printf(bloques[0][0])
                                 j++; //Se Incrementa j
                          } 
                          i++;
                          j=0;
                  } 
          }
          //NO IMPRIME BIEN
          printf(bloques[0][0]);
          getch();
 fclose(archivo); //Se Cierra El Fichero
}

int main()
{   
        lectura();
        return 0;
}


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: 0xDani en 22 Junio 2012, 20:42 pm
Pues solo te puedo decir que lo he compilado y no me funciona :-\


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: durasno en 23 Junio 2012, 02:21 am
printf(bloques[0][0])    ????????????????????????


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: ZedGe en 23 Junio 2012, 03:02 am
printf(bloques[0][0])    ????????????????????????


que tiene???


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: durasno en 23 Junio 2012, 03:25 am
http://c.conclase.net/librerias/?ansifun=printf


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: ZedGe en 23 Junio 2012, 03:40 am
no te entiendo, que tiene de malo eso?? si estoy imprimiendo un valor de mi matriz


Título: Re: Problema De Lectura Y Paso A Matriz
Publicado por: Maik33 en 25 Junio 2012, 07:05 am
para imprimir el valor de una variable se pone: printf("%d",x) siendo x una variable de tipo int. Para imprimir las de tipo char seria %c.