Problème lecture dans un fichier en C
Résolu/Fermé
A voir également:
- Problème lecture dans un fichier en C
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
13 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
24 janv. 2009 à 11:19
24 janv. 2009 à 11:19
Salut,
au lieu de char nom1[] = "";
fscanf(fichier,"\n%s", &nom1)mets
au lieu de char nom1[] = "";
char nom1[50];au lieu de
fscanf(fichier,"\n%s", &nom1)mets
fscanf(fichier,"%s", nom1)
Merci beaucoup,ça fait des heures que j'étais bloqué sur ce code.
(Je débute)
C'est sympa d'avoir répondu aussi vite.(Ça a bien sur marché)
(Je débute)
C'est sympa d'avoir répondu aussi vite.(Ça a bien sur marché)
J'ai un autre problème.
Une fonction que j'appelle n'est pas reconnue.
Le message erreur est : " Undefined reference to "_scores"
(En français: Référence non définie vers _scores je crois)
Je pense bien que l'erreur est due au "_" devant scores.
Voila la source comprenant mes includes,mon header.h , la fonction scores , et l'appel de la fonction.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "header.h"
le header
void JcO ( );
void scores (FILE* fichier);
la fonction "scores"
void scores (FILE* fichier)
{
long score[3] = {0}; // Tableau des 3 meilleurs scores
char nom1[50];
fscanf(fichier,"%ld ", &score[0]);
fscanf(fichier,"%s",nom1);
printf("%ld points,par %s. \n", score[0], nom1);
}
l'appel de "scores"
fichier = fopen ("score.sco","r");
scores(fichier);
Encore une fois,si quelqu'un peut m'aider,je l'en remercie.
Une fonction que j'appelle n'est pas reconnue.
Le message erreur est : " Undefined reference to "_scores"
(En français: Référence non définie vers _scores je crois)
Je pense bien que l'erreur est due au "_" devant scores.
Voila la source comprenant mes includes,mon header.h , la fonction scores , et l'appel de la fonction.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "header.h"
le header
void JcO ( );
void scores (FILE* fichier);
la fonction "scores"
void scores (FILE* fichier)
{
long score[3] = {0}; // Tableau des 3 meilleurs scores
char nom1[50];
fscanf(fichier,"%ld ", &score[0]);
fscanf(fichier,"%s",nom1);
printf("%ld points,par %s. \n", score[0], nom1);
}
l'appel de "scores"
fichier = fopen ("score.sco","r");
scores(fichier);
Encore une fois,si quelqu'un peut m'aider,je l'en remercie.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
24 janv. 2009 à 19:40
24 janv. 2009 à 19:40
Salut,
Je pense bien que l'erreur est due au "_" devant scores.
Il est où ce _ , puisque je ne le vois pas?
Je pense bien que l'erreur est due au "_" devant scores.
Il est où ce _ , puisque je ne le vois pas?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ben justement,le message d'erreur (" Undefined reference to "_scores" ) m'en indique un,alors qu'il n'y en a pas dans le code.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
24 janv. 2009 à 20:43
24 janv. 2009 à 20:43
Re,
Essaie de mettre un autre nom pour ta fonction.
Essaie de mettre un autre nom pour ta fonction.
"Untilted reference to autre_nom."
Ça pourrait aussi être du aux #includes ,mais j'ai une autre fonction que marche dans le prog.
P-S: Si je me mets pas la fonction dans un autre fichier (ici scores.c) , que je la déclare et la laisse dans le main,le truc marche.
Ça pourrait donc être du au fichier,mais je vois pas pourquoi ...
Ça pourrait aussi être du aux #includes ,mais j'ai une autre fonction que marche dans le prog.
P-S: Si je me mets pas la fonction dans un autre fichier (ici scores.c) , que je la déclare et la laisse dans le main,le truc marche.
Ça pourrait donc être du au fichier,mais je vois pas pourquoi ...
J'ai quelque chose.
J'ai supprimé-recréé le fichier header,et scores (ils n'avaient pas l'air attachés au projet).
J'ai toujours un message d'erreur ... (plusieurs même)
La fonction scores:
void scores (FILE* fichier) // Erreur: syntax error before '*' token
long score[3] = {0}; // Tableau des 3 meilleurs scores
char nom1[50];
fscanf(fichier,"%ld ", &score[0]);
fscanf(fichier,"%s",nom1);
printf("%ld points,par %s. \n", score[0], nom1);
}
Les erreurs:
error: `fichier' undeclared (first use in this function) [Je l'ai pourtant déclaré ,c'est juste un type FILE ]
warning: implicit declaration of function `fscanf'[Je vois pas ce que ça peut vouloir dire]
error: (Each undeclared identifier is reported only once [Chaque indentifieur non déclaré est reporté seulement une fois ? ]
error: for each function it appears in.) [Erreur pour chaque fonction apparaissant ici ?]
warning: implicit declaration of function `printf' [Je vois toujours pas]
Programmer en C,c'est encore plus dur qu'IWBTG ...
C'est encore bien long avant de tout comprendre ?
J'ai supprimé-recréé le fichier header,et scores (ils n'avaient pas l'air attachés au projet).
J'ai toujours un message d'erreur ... (plusieurs même)
La fonction scores:
void scores (FILE* fichier) // Erreur: syntax error before '*' token
long score[3] = {0}; // Tableau des 3 meilleurs scores
char nom1[50];
fscanf(fichier,"%ld ", &score[0]);
fscanf(fichier,"%s",nom1);
printf("%ld points,par %s. \n", score[0], nom1);
}
Les erreurs:
error: `fichier' undeclared (first use in this function) [Je l'ai pourtant déclaré ,c'est juste un type FILE ]
warning: implicit declaration of function `fscanf'[Je vois pas ce que ça peut vouloir dire]
error: (Each undeclared identifier is reported only once [Chaque indentifieur non déclaré est reporté seulement une fois ? ]
error: for each function it appears in.) [Erreur pour chaque fonction apparaissant ici ?]
warning: implicit declaration of function `printf' [Je vois toujours pas]
Programmer en C,c'est encore plus dur qu'IWBTG ...
C'est encore bien long avant de tout comprendre ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
25 janv. 2009 à 12:02
25 janv. 2009 à 12:02
Salut,
Pour mieux comprendre colle tes fichiers ici ou mets les sur cjoint.com
Pour mieux comprendre colle tes fichiers ici ou mets les sur cjoint.com
header.h
https://www.cjoint.com/?bBmhEdgco2
Joueur Contre Ordinateur
https://www.cjoint.com/?bBmiQgyHhJ
Main.c
https://www.cjoint.com/?bBmjwekQzo
Scores.c
https://www.cjoint.com/?bBmjYsaqkG
https://www.cjoint.com/?bBmhEdgco2
Joueur Contre Ordinateur
https://www.cjoint.com/?bBmiQgyHhJ
Main.c
https://www.cjoint.com/?bBmjwekQzo
Scores.c
https://www.cjoint.com/?bBmjYsaqkG
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
25 janv. 2009 à 12:23
25 janv. 2009 à 12:23
Salut,
Dans les fichiers JcO.c et scores.c tu utilises des fonctions (printf, scanf, fscanf) mais tu n'as pas utilisé la directive
#include<stdio.h>
Voici la compilation chez moi de tes fichiers
Dans les fichiers JcO.c et scores.c tu utilises des fonctions (printf, scanf, fscanf) mais tu n'as pas utilisé la directive
#include<stdio.h>
Voici la compilation chez moi de tes fichiers
lami20j@debian:~/trash/raph$ gcc -c JcO.c scores.c main.c JcO.c: In function 'JcO': JcO.c:15: warning: incompatible implicit declaration of built-in function 'printf' JcO.c:20: warning: incompatible implicit declaration of built-in function 'scanf' scores.c:3: error: expected ')' before '*' tokenet voici après l'ajout de #include<stdio.h>
lami20j@debian:~/trash/raph$ gcc -c JcO.c scores.c main.c lami20j@debian:~/trash/raph$ gcc JcO.o scores.o main.o -o main lami20j@debian:~/trash/raph$ ./main =====Plus Ou Moins===== Menu: 1. Jouer Contre L'ordinateur 2. Jouer Contre un "vrai" Humain 3. Scores Je veux executer l'action numero
Je dois tout ré-inclure dans chaque fichier C c'est ça ?
J'essaye alors.
J'essaye alors.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
25 janv. 2009 à 12:31
25 janv. 2009 à 12:31
Re,
Pas tout.
Juste #include <stdio.h>
Pas tout.
Juste #include <stdio.h>
Effectivement,ça marche parfaitement.
Je n'aurais jamais deviné que je devais ré-inclure les fichiers.
Je me remets tout de suite au codage. (J'étais parti jouer tellement je suis impatient,je suis peut-être pas fait pour ça)
Donc,merci Lami20j , tu me sauves pas la vie,mais c'est tout comme.
// Je mets en résolu.
Je n'aurais jamais deviné que je devais ré-inclure les fichiers.
Je me remets tout de suite au codage. (J'étais parti jouer tellement je suis impatient,je suis peut-être pas fait pour ça)
Donc,merci Lami20j , tu me sauves pas la vie,mais c'est tout comme.
// Je mets en résolu.