Utilisation de fread

Msgbox Messages postés 67 Date d'inscription lundi 1 juillet 2002 Statut Membre Dernière intervention 1 septembre 2006 - 4 sept. 2002 à 12:01
 Utilisateur anonyme - 8 sept. 2002 à 11:31
G un tres gros probleme.
Je voudrais lire un fichier sans le lire caractere par caractere en utilisant fread. Le fichier terminus comporte les caracteres suivants: "abcdefghijkl" Voila mon code:
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"

int main(int argc, char* argv[])
{
FILE *Fil1;
char Fl;
char *Fl1;
Fil1=fopen("c:\\Terminus.txt","rb");
int i;
fread(&Fl,6,1,Fil1); //c la le bleme
fclose(Fil1);
Fl1=&Fl;

printf(Fl1);
getchar();
return 0;
}
J'aurais bien aime faire printf(*&Fl) mais ca lance le debugger et ca affiche "Unhandled exeption in prog.exe: 0XC0000005, access violation"
Mais c pas la le probleme. Le probleme c quand je veux lire par exemple les 7 premiers octets du fichier(fread(&Fl,7,1,Fil1); ) ca remet le meme message avec le debugger.
En clair, je ne peux lire que les 6 premiers octets, rien de plus et encore qund je veux lire 4 octets ca m'affiche "abcd:<B", quand j'en veux lire 5: "abcde<B" et pour 6 ca fait "abcdefB". G auassi remarque que l'adresse de l(&Fl) comportait 7 chiffres, ca a peut etre a voir quelque chose avec mon probleme.
Sinon le prog C fait en VC++60, le fichier n'etait pas protege contre l'ecture ni ecriture et il etait pas utilise par un autre programme.
Si vous avez une soluion s'il vous plait aidez moi ca serait sympa

Msgbox

3 réponses

TheRod23 Messages postés 69 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 15 mars 2004
4 sept. 2002 à 15:14
Salut,

tu devrais allouer de la mémoire pour recevoir ta chaine parce que la tu n'as alloué qu'un seul caractére (char Fl;) au lieu d'une chaine (char Fl[x];)

Bon code

TheRod23
0
Msgbox Messages postés 67 Date d'inscription lundi 1 juillet 2002 Statut Membre Dernière intervention 1 septembre 2006
4 sept. 2002 à 20:52
Je sais mais il faut que le nb de caracteres soit le meme que n'importe quel fichier, et avec char Fl[x]
je dois specifier un nombre exact
0
Utilisateur anonyme
8 sept. 2002 à 11:31
C clair, il fo que tu fasses un malloc sur la char et
que tu appelle fread aprés.

realloc aprés.......

et ensuite free, pour faire propre.
0
Rejoignez-nous