Lecture fichier en C
Résolu/Fermé
A voir également:
- Lecture fichier en C
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
- Ouvrir fichier .bin - Guide
4 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
11 oct. 2005 à 17:02
11 oct. 2005 à 17:02
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; }
Luffy =)
Messages postés
365
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
19 mai 2006
110
11 oct. 2005 à 17:03
11 oct. 2005 à 17:03
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 !
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
11 oct. 2005 à 17:04
11 oct. 2005 à 17:04
erreur de fscanf et de temp.
il me semble qu'avec scanf il faut initialiser la taille du tableau.
autre chose, tu devrais tester que ton fichier est bien ouvert .
if ((fichier=fopen(...))==0) printf("erreur d'ouvertur");
et dans un cas comme ça, utilise un debuggeur, il te dira ou est l'erreur.
il me semble qu'avec scanf il faut initialiser la taille du tableau.
autre chose, tu devrais tester que ton fichier est bien ouvert .
if ((fichier=fopen(...))==0) printf("erreur d'ouvertur");
et dans un cas comme ça, utilise un debuggeur, il te dira ou est l'erreur.
27 janv. 2007 à 17:19
fseek(fic,0,SEEK_END);
que
fseek(fic,SEEK_END,0);
salut