Salut !
J aimerai savoir quoi utiliser pour ouvrir un "gros" fichier texte (environ 5ko)
avec fread, ca passe pas, ou j ai mal passe mes parametres... ?
Sinon, savez vous comment ouvir un fichier texte d'une lettre ou un mot definie a un autre mot ou lettre definie (ex : de '@' à ';').
// ouvre le fichier
FILE *file=fopen("fichier.txt","rb");
// deplace le curseur a la fin
fseek(file,0,SEEK_END);
// taille du fichier
long sizeFile=ftell(file);
// on se repositionne au debut
fseek(file,0,SEEK_SET);
// allocation
char * buffer=(char*)malloc(sizeFile);
// lecture
fread(buffer,1,sizeFile,file);
// ferme le fichier
fclose(file);
ok, merci pour ces info !
cela marche tres bien,
cependant, quand je declare un char * buffer = (char*)malloc(sizefile + 1); dans ma fonction main, comment y acceder dans toutes mes autres fonctions (je ne peut pas declarer buffer en global, puisque il faut passer par main ou une autre fonction pour determiner sa taille).
Je ne suis pas du tout d'accord avec le '\0' en fin de buffer pour 2 raisons :
- on connait la taille donc pas besoin d'info en plus.
- imagine qu'il y ai déjà un '\0' dans le buffer par exemple dans un fichier binaire, ton '\0' ne sert plus a rien.
C'est un fichier texte en effet.
Merci a vous tous pour ces info qui se completes bien ! j ai pu terminer cette partie de mon programme (en attendant de l optimiser, c'est deja un grand pas)
PS : 5Ko c'est pas mal pour un fichier texte (en nombre de caracteres), et le \0 fonctionne.