Msgbox
Messages postés67Date d'inscriptionlundi 1 juillet 2002StatutMembreDerniè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
TheRod23
Messages postés69Date d'inscriptiondimanche 15 octobre 2000StatutMembreDernière intervention15 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];)