URL: https://linuxfr.org/forums/programmation-c--2/posts/mettre-un-fichier-dans-une-matrice Title: Mettre un fichier dans une matrice Authors: Calve Date: 2009年05月16日T14:05:41+02:00 Tags: Score: 0 Bonjour les moules ! J'aimerai lire le contenu de ./fichier, qui contient des entiers organisé en tableau, et faire correspondre chacun de ces entiers à une case dans une matrice de type int grille[5][5] J'ai donc le code suivant : machin.c int main(int argc, char *argv[]) { int caractereActuel, grille[11][11],i,j; for (i=0;i<=10;i++) //Remise à zéro de la grille £spaces£ £/spaces£{ £spaces£ £/spaces£for (j=0;j<=10;j++) £spaces£ £/spaces£{ £spaces£ £/spaces£grille[i][j]=0; £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£FILE* fichier = NULL; £spaces£ £/spaces£fichier = fopen("fichieraouvrir", "r+"); £spaces£ £/spaces£if (fichier != NULL) £spaces£ £/spaces£{ £spaces£ £/spaces£do £spaces£ £/spaces£{ £spaces£ £/spaces£for(i=1;i<=5;i++) £spaces£ £/spaces£{ £spaces£ £/spaces£for(j=1;j<=5;j++) £spaces£ £/spaces£{ £spaces£ £/spaces£caractereActuel= fgetc(fichier); // On lit le caractère £spaces£ £/spaces£printf("%c ", caractereActuel); £spaces£ £/spaces£grille[i][j]=caractereActuel; £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£} while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier) £spaces£ £/spaces£fclose(fichier); // On ferme le fichier qui a été ouvert £spaces£ £/spaces£} £spaces£ £/spaces£else £spaces£ £/spaces£{ £spaces£ £/spaces£// On affiche un message d'erreur si on veut £spaces£ £/spaces£printf("Impossible d'ouvrir le fichier test.txt"); £spaces£ £/spaces£} printf("\nAffichage de la matrice ... \n"); for (i=0;i<=5;i++) £spaces£ £/spaces£{ £spaces£ £/spaces£for (j=0;j<=5;j++) £spaces£ £/spaces£{ £spaces£ £/spaces£printf("%d ",grille[i][j]); £spaces£ £/spaces£} £spaces£ £/spaces£printf("\n"); £spaces£ £/spaces£} printf("\n"); £spaces£ £/spaces£return 0; } fichier : 00200 01000 00000 10030 00050 Evidemment, ca ne marche pas .... en console ca me donne : gcc machin.c && ./a.out 0 0 2 0 0 £spaces£ £/spaces0ドル 1 0 0 0 £spaces£ £/spaces0ドル 0 0 0 0 £spaces£ £/spaces1ドル 0 0 3 0 £spaces£ £/spaces0ドル 0 0 5 0 £spaces£ £/spaces£� � � � � � Affichage de la matrice ... 48 48 50 48 48 10 48 49 48 48 48 10 48 48 48 48 48 10 49 48 48 51 48 10 48 48 48 53 48 10 -1 -1 -1 -1 -1 -1 Donc je voudrais savoir qu'est ce qui va pas :D Un probleme de pointeur, ou de type de donnée, ou une mauvaise utilisation de fgetc ? fscanf est-elle plus appropriée ici ? C'est dans le cadre d'un petit projet pour ma premiere année d'IUT, donc j'ai pas forcement toutes les notions necessaires ... ca doit donc etre un peu crade comme code ? Merci d'avance :)

AltStyle によって変換されたページ (->オリジナル) /