Erreur procédure chargement fichier
Résolu/Fermé
Franck7511
Messages postés
14296
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
10 août 2017
-
Modifié par Franck7511 le 24/12/2013 à 14:15
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 déc. 2013 à 13:53
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 déc. 2013 à 13:53
A voir également:
- Erreur procédure chargement fichier
- Erreur 0x80070643 - Accueil - Windows
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
3 réponses
Franck7511
Messages postés
14296
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
10 août 2017
1 121
26 déc. 2013 à 12:34
26 déc. 2013 à 12:34
up ! :)
Franck7511
Messages postés
14296
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
10 août 2017
1 121
26 déc. 2013 à 13:17
26 déc. 2013 à 13:17
Résolu : On devait écrire
Car il y a le caractère '\0' et le caractère '\n' !
char str_grillechar[longueur*hauteur +2];
Car il y a le caractère '\0' et le caractère '\n' !
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
Modifié par fiddy le 26/12/2013 à 13:53
Modifié par fiddy le 26/12/2013 à 13:53
Bonjour,
Bravo. Tu as trouvé tout seul. Je te joins les explications si cela t'intéresse :
Le fgets stocke le '\n' lorsqu'il y a suffisamment de place, ce qui est le cas ici. Du coup, un coup ton fgets() récupère le début de la ligne (sans le '\n') et le fgets() suivant récupère uniquement le '\n', ce qui pose problème lorsque tu recopies la ligne.
Sinon, des remarques sur ton code (hors la vérification des codes retours, etc. ;-)) :
atoi() est obsolète. Utilise plutôt strtol().
Dans ta fonction chargement2(), tu peux faire beaucoup plus rapide.
for (i = 0; i < longueur*hauteur; i++)
{
grille_demineur[i/longueur][i%longueur] = str_grillechar[i];
}
fgets(str_grille, (longueur*hauteur) +1, fp);
for (i = 0; i < longueur*hauteur; i++)
{
grille[i/longueur][i%longueur] = str_grille[i]-48;
}
Tu peux simplement faire :
De même pour la fonction de sauvegarde.
Cdlt,
Bravo. Tu as trouvé tout seul. Je te joins les explications si cela t'intéresse :
Le fgets stocke le '\n' lorsqu'il y a suffisamment de place, ce qui est le cas ici. Du coup, un coup ton fgets() récupère le début de la ligne (sans le '\n') et le fgets() suivant récupère uniquement le '\n', ce qui pose problème lorsque tu recopies la ligne.
Sinon, des remarques sur ton code (hors la vérification des codes retours, etc. ;-)) :
atoi() est obsolète. Utilise plutôt strtol().
Dans ta fonction chargement2(), tu peux faire beaucoup plus rapide.
for (i = 0; i < longueur*hauteur; i++)
{
grille_demineur[i/longueur][i%longueur] = str_grillechar[i];
}
fgets(str_grille, (longueur*hauteur) +1, fp);
for (i = 0; i < longueur*hauteur; i++)
{
grille[i/longueur][i%longueur] = str_grille[i]-48;
}
Tu peux simplement faire :
fgets((char*)grille_demineur, longueur*hauteur, fp); fgetc(fp); fgets((char*)grille, longueur*hauteur, fp); fgetc(fp);
De même pour la fonction de sauvegarde.
Cdlt,