Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Rellenar matriz desde un fichero en C

Estas en el tema de Rellenar matriz desde un fichero en C en el foro de C/C++ en Foros del Web. Hola a todos, estoy haciendo un trabajo y necesito llenar una matriz con números ingresados desde un txt pero cuando lo corro me dice que ...
  #1 (permalink)  
Antiguo 15/11/2014, 16:56
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 10 años
Puntos: 0
Pregunta Rellenar matriz desde un fichero en C

Hola a todos, estoy haciendo un trabajo y necesito llenar una matriz con números ingresados desde un txt pero cuando lo corro me dice que dejo de funcionar, obviamente creo que está malo jeje, pero no sé como hacerlo, si alguien me puede ayudar le estaré muy agradecida :)

Esta es la matriz en el txt:

8 2 9 4 6 1 7 5 3
5 3 1 8 7 2 9 6 4
7 6 4 5 9 3 1 2 8
4 7 3 6 2 9 5 8 1
1 8 6 7 4 5 2 3 9
2 9 5 1 3 8 4 7 6
9 1 7 3 5 6 8 4 2
6 5 2 9 8 4 3 1 7
3 4 8 2 1 7 6 9 5

Para entender mejor lo que estaba haciendo puse un printf así:

Código C:
Ver original
  1. for(i=0;i<9;i++){
  2.       printf(" \n");
  3.        for(j=0;j<9;j++){
  4.             fscanf(f,"%d",&temp);
  5.             matriz[i][j] = temp;
  6.             printf("%d ", matriz[i][j]);
  7.        }
  8. }

Y en en la consola se imprimió:

8 2 9 4 6 1 7 5 3
5 3 1 8 7 2 9 6 4
7 6 4 5 9 3 1 2 8
4 7 3 6 2 9 5 8 1
1 8 6 7 4 5 2 3 9
2 9 5 1 3 8 4 7 6
9 1 7 3 5 6 8 4 2
6 5 2 9 8 4 3 1 7
3 4

Osea faltaron algunos números, no entiendo por qué u.u


Este es el trozo de código original, el tipo de dato es entero.

Código C:
Ver original
  1. for(i=0;i<9;i++){
  2.         for(j=0;j<9;j++){
  3.               fscanf(f,"%d",&temp);
  4.               matriz[i][j] = temp;
  5.          }
  6.  }

gracias!!
  #2 (permalink)  
Antiguo 16/11/2014, 06:51
Avatar de leosansan  
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 5 meses
Puntos: 49
Respuesta: Rellenar matriz desde un fichero en C

Cita:
Iniciado por nephalot Ver Mensaje
Hola a todos, estoy haciendo un trabajo y necesito llenar una matriz con números ingresados desde un txt pero cuando lo corro me dice que dejo de funcionar, obviamente creo que está malo jeje, pero no sé como hacerlo, si alguien me puede ayudar le estaré muy agradecida :)
................................

Y en en la consola se imprimió:

8 2 9 4 6 1 7 5 3
5 3 1 8 7 2 9 6 4
7 6 4 5 9 3 1 2 8
4 7 3 6 2 9 5 8 1
1 8 6 7 4 5 2 3 9
2 9 5 1 3 8 4 7 6
9 1 7 3 5 6 8 4 2
6 5 2 9 8 4 3 1 7
3 4

Osea faltaron algunos números, no entiendo por qué u.u


Este es el trozo de código original, el tipo de dato es entero.

Código C:
Ver original
  1. for(i=0;i<9;i++){
  2.         for(j=0;j<9;j++){
  3.               fscanf(f,"%d",&temp);
  4.               matriz[i][j] = temp;
  5.          }
  6.  }

gracias!!
Pues a mi se me imprime correctamente. Te dejo mi código no sea que hagas algo "raro" en el resto del código:

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void) {
  5.     FILE *fichero;
  6.     int i, j, temp, matriz [9][9];
  7.     if ((fichero = fopen("matriz.txt", "r")) == NULL) {
  8.         perror("matriz.txt");
  9.         return EXIT_FAILURE;
  10.     }
  11.      
  12.     for(i=0;i<9;i++) {
  13.         printf(" \n");
  14.             for(j=0;j<9;j++) {
  15.               fscanf(fichero,"%d",&temp);
  16.                 matriz[i][j] = temp, printf("%d ", matriz[i][j]);
  17.                            
  18.        }
  19.     }
  20.     fclose(fichero);
  21.     return 0;
  22. }

¡¡¡Saluditos!!!

  #3 (permalink)  
Antiguo 17/11/2014, 17:41
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 10 años
Puntos: 0
Respuesta: Rellenar matriz desde un fichero en C

Ahora sii, Gracias!!! :)

Etiquetas: consola, fichero, funcion, matriz, rellenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:44.