leer matriz desde un txt
Publicado por arthy (1 intervención) el 10/06/2010 14:36:36
Hola a todos, resulta que necesito leer desde un txt una matriz de 3x3 y mostrarla por pantalla.
Tengo este código pero me da un error.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char argv[])
{
int fila,columna,dato;
int matriz[3][3]={0};
char linea[0];
FILE *f;
// rellena la matriz con ceros
memset ( matriz, 0, sizeof(matriz) );
// abre un archivo en modo lectura
f = fopen("C:\\datos.txt","r");
// si no se pudo abrir retorna NULL
if(f==NULL)
{
// escribe mensaje de error
printf("Can't read file 'datos.txt'");
return 1;
}
// lee la primera línea del archivo
fgets( linea, sizeof(linea), f);
// comparas el primer caracter de la línea
while (linea[0]!='%') {
// lees los valores de la línea y los guardas en las variables
scanf ( linea,"%d,%d,%d", &fila, &columna, &dato);
matriz[fila][columna] = dato;
// lees la línea siguiente
fgets ( linea, sizeof(linea), f);
}
// cierras el archivo
fclose (f);
// sigue tu código aquí
printf("%d",matriz[0][0]);
system("pause");
return 0;
}
A ver si alguien pudiera ayudarme y decirme cual es el fallo.
Muchas gracias de antemano a todos.
Tengo este código pero me da un error.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char argv[])
{
int fila,columna,dato;
int matriz[3][3]={0};
char linea[0];
FILE *f;
// rellena la matriz con ceros
memset ( matriz, 0, sizeof(matriz) );
// abre un archivo en modo lectura
f = fopen("C:\\datos.txt","r");
// si no se pudo abrir retorna NULL
if(f==NULL)
{
// escribe mensaje de error
printf("Can't read file 'datos.txt'");
return 1;
}
// lee la primera línea del archivo
fgets( linea, sizeof(linea), f);
// comparas el primer caracter de la línea
while (linea[0]!='%') {
// lees los valores de la línea y los guardas en las variables
scanf ( linea,"%d,%d,%d", &fila, &columna, &dato);
matriz[fila][columna] = dato;
// lees la línea siguiente
fgets ( linea, sizeof(linea), f);
}
// cierras el archivo
fclose (f);
// sigue tu código aquí
printf("%d",matriz[0][0]);
system("pause");
return 0;
}
A ver si alguien pudiera ayudarme y decirme cual es el fallo.
Muchas gracias de antemano a todos.
Valora esta pregunta


0