Lecture fichier en C
Résolu/Fermé
A voir également:
- Lecture fichier en C
- Lecture d'un fichier csv python - Conseils pratiques - Python
- Lecture d'un fichier en .kmz ✓ - Forum - Logiciels
- [PHP] Lecture d'un fichier distant ✓ - Forum - PHP
- Lecture d'un fichier NWC ✓ - Forum - Windows 10
- Information sur solution de lecture d'un fichier video ✓ - Forum - Lecture vidéo
4 réponses
kilian
11 oct. 2005 à 17:02
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
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 =)
11 oct. 2005 à 17:03
- Messages postés
- 365
- Date d'inscription
- mercredi 20 avril 2005
- Statut
- Membre
- Dernière intervention
- 19 mai 2006
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
11 oct. 2005 à 17:04
- Messages postés
- 9688
- Date d'inscription
- vendredi 23 avril 2004
- Statut
- Contributeur
- Dernière intervention
- 2 octobre 2020
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