voila le code (avec le default dans le switch, avec une modification des constante (plus de caractere a lire dans le fichier), et avec l´affichage des resulat :
- include <stdlib.h>
- include <stdio.h>
- define NB_BLOCS_LARGEUR 5
- define NB_BLOCS_HAUTEUR 3
enum {ZHAUT, ZBAS, ZGAUCHE, ZDROITE, ZAUTRE, ZAUTREO};
enum {RIEN, MUR, ARBRE, EAU};
int main(int argc, char *argv[])
{
// déclaration des variable
FILE* fichier = NULL;
char ligneFichier[NB_BLOCS_LARGEUR + 1] = {0}, niveau[NB_BLOCS_LARGEUR][NB_BLOCS_HAUTEUR] = {0}, map[5];
int i = 0, j = 0;
// ouverture du fichier
fichier = fopen("niv", "r");
// chargement de la zone
rewind(fichier);
for (i = 0 ; i < NB_BLOCS_HAUTEUR; i++)
{
fgets(ligneFichier, NB_BLOCS_LARGEUR + 1, fichier);
for (j = 0 ; j < NB_BLOCS_LARGEUR; j++)
{
switch (ligneFichier[j])
{
case ´a´:
niveau[i][j] = 0;
break;
case ´b´:
niveau[i][j] = 1;
break;
default:
niveau[i][j] = 3;
}
}
}
printf("%ld%ld%ld%ld%ld ", niveau[0][0], niveau[0][1], niveau[0][2], niveau[0][3], niveau[0][4]);
printf("%ld%ld%ld%ld%ld ", niveau[1][0], niveau[1][1], niveau[1][2], niveau[1][3], niveau[1][4]);
printf("%ld%ld%ld%ld%ld ", niveau[2][0], niveau[2][1], niveau[2][2], niveau[2][3], niveau[2][4]);
}
mon fichier contiens exactement :
aaaaa
bbbbb
ababa
et mon code me donne ca :
00033 33011 11111
avec un autre test :
aabbb
ababa
bbbaa
j´obtien :
00133 33101 0101
(a chaque fois la dernière serie de chiffre correspond a la 2eme ligne de mon fichier... :/)
et je vois toujours pas le problemes...
merci 