Impossible de lire dans un fichier
Bonjour
J'essaie d'écrire des donnés brut dans un fichier puis de les lire.
Plus précisément j'essaie d'écrire 81 entiers d'un tableau dans un fichier.
fopen et fwrite ne revoie pas d'erreur mais fread ne lis aucun caractère.
Le but de la structure et d'avoir de quoi travailler proprement dans un sudoku et à un niveau un peu plus élevée.
Voilà le code :
le main
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include "struct.h"
#include <stdlib.h>
#include <stdio.h>
int main()
{
sudoku S1= creer();
sudoku S2=NULL;
writeValeur(S1,0,0,1);
printf("S1 :\n");
affiche(S1);
sauver(S1,"essai.sdk");
S2=charger("essai.sdk");
printf("S2 :\n");
affiche(S2);
return 1;
} |
Le fichier struct.c
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| void sauver(sudoku S,char* nom)
{
FILE* pFichier=NULL;
testSuNull(S,"sauver");
pFichier=fopen(nom,"w");
if (pFichier==NULL)
erreur("sauver","ipossible d'ouvrir le fichier");
if(fwrite(S,sizeof(int),81,pFichier)!=81)
erreur("sauver","impossible d'ecrire dans le fichier");
}
sudoku charger(char* nom)
{
FILE* pFichier=NULL;
sudoku S=creer();
int i;
pFichier=fopen(nom,"r");
if (pFichier==NULL)
erreur("charger","ipossible d'ouvrir le fichier");
i=fread(S,sizeof(int),81,pFichier);
fprintf(stderr,"i = %d\n",i);
if(i!=81)
erreur("charger","fichier corrompu");
return S;
} |
Et voila ce qu'affiche bash.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| mooglwy : ~/Cours/Projet-info/c/redo$make
gcc -c -Wall struct.c
gcc -c -Wall test.c
gcc struct.o test.o -o test
mooglwy : ~/Cours/Projet-info/c/redo$./test
S1 :
100 000 000
000 000 000
000 000 000
000 000 000
000 000 000
000 000 000
000 000 000
000 000 000
000 000 000
i = 0
Erreur dans charger : fichier corrompu |
Je comprends pas trop d'où peut venir le problème, merci de m'aider.:)