Lecture fichier en C
Résolu
frizou
-
Armand -
Armand -
A voir également:
- Lecture fichier en C
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
fsanf() va mettre le contenu de ton fichier à l'adresse de temp.
Mais tu n'as alloué aucun espace pour temp, ce n'est qu'un pointeur.
Soit tu déclare un temp assez gros pour prendre le contenu du fichier (char temp[32] si ton fichier fait 32 octets), soit tu fais une allocation memoire de la taille du fichier pour temp:
Mais tu n'as alloué aucun espace pour temp, ce n'est qu'un pointeur.
Soit tu déclare un temp assez gros pour prendre le contenu du fichier (char temp[32] si ton fichier fait 32 octets), soit tu fais une allocation memoire de la taille du fichier pour temp:
#include <stdlib.h> int main(int argc, char **argv) { FILE *fichier; char *temp; long taille_file; fichier = fopen(argv[1], "r"); //On fait pointer fichier vers la fin du fichier fseek(fichier,SEEK_END,0); /*On met la taille du fichier dans taille_fichier (car fichier pointe vers la fin du fichier, sa position donne le nombre d'octets pour arriver à la fin) */ taille_fichier=ftell(fichier); //On refait pointer fichier au début du fichier fseek(fichier,SEEK_SET,0); //Allocation de temp avec la taille du fichier temp=(char *)malloc(sizeof(char) * taille_fichier); fscanf(fichier, "%s", temp); printf("voila ce qu'il y a dans temp: ***%s***\n", temp); fclose(fichier); //On libère temp free(temp); return EXIT_SUCCESS; }
Tu n'as pas alloué de mémoire pour ta variable temp. A moins que fscanf l'alloue tout seul, mais pas sur...
EDIT : mince, trop tard, et moins bien ;-)
Bien joué killian !
EDIT : mince, trop tard, et moins bien ;-)
Bien joué killian !
fseek(fic,0,SEEK_END);
que
fseek(fic,SEEK_END,0);
salut