en binaire dans un fichier [C] ecrire un tableau[N][N] - Programmation
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]
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);
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); |
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
---------------
For a relaxing time, make it suntory time