problème d'ouverture de fichier [résolu]

problème d'ouverture de fichier [résolu] - C++ - Programmation

Marsh Posté le 30-10-2002 à 16:44:43    

bonjour
j'ai un fichier etape0.txt qui a cette tête-là :
                 BBBBBBN
                 BBBBBNN
                 BBBBNNN
                 BBBNNNN
                 BBNNNNN
                 BNNNNNN
                 NNNNNNN
et j'essaie de l'importer dans une matrice 9x9 de caractères (j'initialise un contour à 'B';)
mais voilà l'initialisation se déroule bien mais pas l'importation des caractères du fichier texte

Code :
  1. void initialise(grille m)
  2. {
  3. FILE *f;
  4. int i;
  5. int j;
  6. //Initialisation de la matrice avec des 'B' partout
  7. for (i=0;i<T;i++)
  8.  for (j=0;j<T;j++)
  9.   m[i][j]='B';
  10. //Ouverture du fichier et ecriture dans la matrice du contenu du fichier
  11. if ((f=fopen("etape0.txt","rt" ))==(NULL))
  12.  printf("Probleme a l'ouverture du fichier etape0.txt.\n" );
  13. else
  14. {
  15.  for (i=1;i<T-1;i++)
  16.  {
  17.   for (j=1;j<T-1;j++)
  18.   {
  19.    if (fscanf(f,"%c",&m[i][j])==(-1))
  20.     printf("Probleme de lecture dans le fichier etape0.txt.\n" );
  21.   }
  22.  }
  23. }
  24. fclose(f);
  25. for (i=0;i<T;i++)
  26. {
  27.  for (j=0;j<T;j++)
  28.   printf("%2c",m[i][j]);
  29.  printf("\n" );
  30. }
  31. }


ça m'affiche pas la matrice...
 
je sèche.


Message édité par gobbaf le 03-11-2002 à 13:58:48
Reply

Marsh Posté le 30-10-2002 à 16:44:43   

Reply

Marsh Posté le 30-10-2002 à 17:02:24    

Juste en passant  
ça fait longtemps que j'ai pas fait de C  :sarcastic:  
for (i=1;i<T-1;i++)  
 {  
  for (j=1;j<T-1;j++)  
  {  
   if (fscanf(f,"%c",&m[i][j])==(-1))  
    printf("Probleme de lecture dans le fichier etape0.txt.\n" );  
 
m est déclaré comment ?
et pourquoi tu pars avec i=1 et j=1
et pas i=0 et j=0 dans la boucle ci-dessus ?

Reply

Marsh Posté le 30-10-2002 à 17:04:44    

"rt" => "t" n'est pas standard


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 03-11-2002 à 13:58:20    

bonjour
pour le 't' je sais que ce n'est pas standard (on en a déjà parlé dans un poste précedent, mes profs m'ont demandé de le laisser bien que ce ne soit pas de norme ANSI...)
 
sinon le problème est résolu : dans le fichier etape0.txt, il ne fallait ni retour-chariot ni espace.
 
pour info, je commence ma boucle à i=1 et j=1 parce que j'ai besoin d'initialiser un bord à ma matrice (ma matrice sera plus grande que mon fichier *.txt), d'ailleurs elle se finit à i<TAILLE-1 et j< TAILLE-14 (et non i<TAILLE et j<TAILLE)
 
m est déclaré ici : void initialise(grille m)
en sachant que j'ai mis : typedef grille[TAILLE]; et j'ai défini TAILLE avant            : #define TAILLE 10
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed