[C] ecrire un tableau[N][N] en binaire dans un fichier

en binaire dans un fichier [C] ecrire un tableau[N][N] - Programmation

Marsh Posté le 11-03-2001 à 17:32:48    

kkun aurait un moyen d'ecrire un tableau bidimensionel d'int sans ecrire les cases 1 par 1 :??:
avec fwrite par exemple mais ca me sort des trucs de fou ...
thx :jap:


---------------
For a relaxing time, make it suntory time
Reply

Marsh Posté le 11-03-2001 à 17:32:48   

Reply

Marsh Posté le 11-03-2001 à 19:39:22    

Moi je dirais avec write tout simplement (fonctions de io.h je crois)
 
int f;
f=open(...);
write(...);
etc...
 
Tu écris tout le tableau d'un coup en donnant le nom du tableau en paramètre puisque c'est une adresse, ça marche normalement.
 
Et après pour le relire avec read tu le fous dans un tableau de même taille.
 
Attention quand même : il faut ouvrir les fichiers en mode binaire, pcq parfois par défaut c'est mode texte et là ça foire pas mal...

 

[edit]--Message édité par antp--[/edit]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-03-2001 à 22:43:09    

voila, c'est comme ca :
 
  #include <stdio.h>
 
  FILE* fichier;
 
  int taille_tableau=N*N*sizeof(int);
  char* nom_fichier="c:\toto.bin";
 
  fichier = fopen(nom_fichier,"wb" );
  if (fichier==(FILE*)NULL) {
    // erreur à l'ouverture du fichier
    }
 
 // Ecriture du fichier
   fseek(fichier,0,0);
  if (fwrite(tableau,1,taille_tableau,fichier)!=taille_tableau) {
   // erreur : tout n'est pas ecris
    fclose(fichier);
    }
 
 // fin
  fclose(fichier);

Reply

Marsh Posté le 12-03-2001 à 12:48:31    

darkoli a écrit a écrit :

voila, c'est comme ca :
 
  #include <stdio.h>
 
  FILE* fichier;
 
  int taille_tableau=N*N*sizeof(int);
  char* nom_fichier="c:\toto.bin";
 
  fichier = fopen(nom_fichier,"wb" );
  if (fichier==(FILE*)NULL) {
    // erreur à l'ouverture du fichier
    }
 
 // Ecriture du fichier
   fseek(fichier,0,0);
  if (fwrite(tableau,1,taille_tableau,fichier)!=taille_tableau) {
   // erreur : tout n'est pas ecris
    fclose(fichier);
    }
 
 // fin
  fclose(fichier);




 :jap:


---------------
For a relaxing time, make it suntory time
Reply

Sujets relatifs:

Leave a Replay

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