SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013
-
11 avril 2004 à 19:30
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013
-
21 avril 2004 à 07:43
Bonjour tout le monde, voila mon probleme :
int loadtablo()
{
static int i = 1;
char caractere;
FILE *fichier; // Déclare le fichier
fichier = fopen("tableau1.txt","r"); // Ouvre le fichier
while (!feof(fichier)) {
fscanf (fichier,"%s",&caractere); // lecture du fichier
caractere = caractere - 48;
g_BoardArray[i] = caractere;
i++;
}
fclose (fichier);
ShowMessage("fin de l'initilisation");
}
En fait il a deux choe que je ne comprend pas c ll'utilité de declarer i en static "static int i = 1;" et l'obligation de faire une pause a la fin "ShowMessage("fin de l'initilisation");"
G droit a un message d'erreur si je les change !!!
Pas a la compilation mais durant l'execution du programme !!
Merci si vous pouviez m'expliquer pourquoi !!!
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 12 avril 2004 à 15:28
Une question : quel est la taille de ton tablea g_BoardArray[] qui si j'en crois ton code n'est pas alloué dynamiquement. Et aussi une remarque, en C les indices commence à 0 donc initialise i à 0 et pas à 1. (à moins que ce sois volontaire pour ton prog...)
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 14 avril 2004 à 17:04
ha oui g mit ca en debut de prog
int g_BoardArray[50][50];
pour l'indice je m'en suis apercu aprés et je commence a 0 effectivement et depuis g modifier le truc et ca deviens
while (!feof(fichier)) {
fscanf (fichier,"%s",&caractere); // lecture du fichier
caractere = caractere - 48;
g_BoardArray[x][y] = caractere;
x++;
if (x == 24 ) {
x = 0;
y++;
}
}
Mais j'ai tjour pas compris pourquoi x et y doivent etre declaré en static ni pourquoi le programme plante si je ne fait pas de pause a la fin !!!!
En fait comme ca ca marche mais j'ai trouvé ca a tatons et si je me trouve dans le meme cas dans le futur je tiens pas a passer 2 h a tout essayer pour que ca marche !!!
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 14 avril 2004 à 19:53
tu declare un tableau 50*50 mais qui te dit que c'est suffissant par rapport a la taille de ton fichier?
en suite, remplace le %s par un %c et voit ensuite
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 16 avril 2004 à 14:27
Pour la taille du tableau c'est bon le fichier fait 12*12 et j'ai mit %s pour lire les mots.
En fait g pas de probleme en faisant comme ca ca marche, j'ai ni probleme de tableau saturé ou de lecture des données, c'est juste que j'arrive pas a comprendre pourquoi je doit faire comme ca !!
Lol
Bon je reconnais que je me fait chier pour rien mais c'est etrange quand meme !!!
caractere est un char, c'est pour cela que je t'ai fait la remarque sur le %c. Sinon un char* sur une chaine de caractère sera plus approprié 'a condition de fi,ier par le caractère null)
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 21 avril 2004 à 07:43
Ha oui lol !!
Désolé javé po compris, en fait je lit des chiffre et comme c des caractere je suis obligé de retrancher 48, je pourrait surement faire plus simple mais la depuis j'ai carrement changer de systeme, mieux concu mais le mystere persiste !!!