Bonjour,
Comment fait-on pour stocker des données, lues à partir d'un fichier text, vers une matrice. Supposons que j'ai un fichier donnes.txt de la forme suivante:
0 1 2 3
12 5 6
6 7 8
9
11 10
Comment lui demander de copier dans la première ligne à la première case 0, deuxième case 1,..., à la deuxième ligne première case 12 ,etc.
J'ai fais le programme ci-dessous. Pourriez-vous SVP y jetter un coup d'oeil et me le corriger?
Merci.
Code:#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 //number of lines int main(int argc, char *argv[]) { int **matrix; matrix=malloc(N * sizeof(int*)); if(matrix==NULL) { printf("Can't allocate memory for matrix\n have to exit!"); exit(1); } for(i=0;i<N;i++) { matrix[i]=malloc(N * sizeof(int)); if(matrix[i]==NULL) { printf("Can't allocate memory for matrix\n have to exit!\n"); exit(1); } } j=0; //compteur column int caractereActuel = 0; fichier = fopen("test.txt", "r"); caractereActuel = fgetc(fichier); while (caractereActuel != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier) { for(i=0;i<N;i++)//i : compteur ligne { matrix[i][j]= caractereActuel; caractereActuel = fgetc(fichier); j++; } } } for(i=0;i<N;i++) { for(j=i+1;j<N;j++) { printf("%d",matrix[i][j]); // On affiche le caractère stocké dans caractereActuel } } fclose(fichier); for(i=0;i<N;i++) { free(matrix[i]); } free(matrix); return 0; } }
-----