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
#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+++
¿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
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
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
¿Te refieres a que al imprimirlo te salen cuatro valores distintos?
claro me imprime lo que va leyendo.... como si la matriz fuera avanzando pero solo imprimo la posición
Pues no se pon el codigo entero.
emm ese que puse al principio es el código entero, es solo 1 funcion
Ya pero es que en el codigo que has puesto despues estaba modificado, pon lo que has ejecutado.
#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;
}
Pues solo te puedo decir que lo he compilado y no me funciona :-\
printf(bloques[0][0]) ????????????????????????
Cita de: durasno en 23 Junio 2012, 02:21 AM
printf(bloques[0][0]) ????????????????????????
que tiene???
http://c.conclase.net/librerias/?ansifun=printf
no te entiendo, que tiene de malo eso?? si estoy imprimiendo un valor de mi matriz
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.