Probleme de lecture d' un fichier en C
Fermé
sdfsam
Messages postés
60
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 mai 2011
-
31 oct. 2010 à 11:59
sdfsam Messages postés 60 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 mai 2011 - 4 nov. 2010 à 16:00
sdfsam Messages postés 60 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 mai 2011 - 4 nov. 2010 à 16:00
A voir également:
- Probleme de lecture d' un fichier en C
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
5 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
31 oct. 2010 à 12:15
31 oct. 2010 à 12:15
Bonjour,
scanf("s",&nom);
Le compilateur doit gronder en voyant ça. Il faut mettre plutôt :
scanf("%s",nom); ou mieux : scanf("%19s", nom);
f=fopen("&nom", "r");
A moins que le fichier s'appelle vraiment "&nom", ça ne marchera pas.
Ce que tu souhaites faire est : f=fopen(nom,"r");
printf("%s", caractere);
Je n'ai pas vu ta déclaration de ta variable caractere. Mais ce n'est pas cohérent la façon dont tu t'en sers. Tu lis un caractère avec fgetc que tu stockes dans ladite variable. Et après tu affiches avec printf une chaîne de caractère... Il faudrait mettre plutôt : printf("%c",caractere); ou plus simplement : putchar(caractere);
int get_nb_lines(FILE*f);
Tu souhaites faire quoi avec ça ??? Une fonction ?
Si c'est le cas, il ne faut pas le mettre dans la fonction main.
Attention à l'usage un peu hasardeux de tes accolades.
Et enfin, il vaut mieux éviter les variables globales comme tu as fait avec FILE *f et char nom[nom];
Si la correction de toutes ces erreurs ne marchent pas, repose ton code avec les corrections apportées et n'oublie surtout pas d'utiliser les balises code (à droite du bouton souligné).
Cdlt,
scanf("s",&nom);
Le compilateur doit gronder en voyant ça. Il faut mettre plutôt :
scanf("%s",nom); ou mieux : scanf("%19s", nom);
f=fopen("&nom", "r");
A moins que le fichier s'appelle vraiment "&nom", ça ne marchera pas.
Ce que tu souhaites faire est : f=fopen(nom,"r");
printf("%s", caractere);
Je n'ai pas vu ta déclaration de ta variable caractere. Mais ce n'est pas cohérent la façon dont tu t'en sers. Tu lis un caractère avec fgetc que tu stockes dans ladite variable. Et après tu affiches avec printf une chaîne de caractère... Il faudrait mettre plutôt : printf("%c",caractere); ou plus simplement : putchar(caractere);
int get_nb_lines(FILE*f);
Tu souhaites faire quoi avec ça ??? Une fonction ?
Si c'est le cas, il ne faut pas le mettre dans la fonction main.
Attention à l'usage un peu hasardeux de tes accolades.
Et enfin, il vaut mieux éviter les variables globales comme tu as fait avec FILE *f et char nom[nom];
Si la correction de toutes ces erreurs ne marchent pas, repose ton code avec les corrections apportées et n'oublie surtout pas d'utiliser les balises code (à droite du bouton souligné).
Cdlt,
sdfsam
Messages postés
60
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 mai 2011
31 oct. 2010 à 15:34
31 oct. 2010 à 15:34
merci pour vos explication
et cmt je peux faire un traitement bien defini de mes données dans le fichier selon une fonction
ou et comment je vais inserer cette fonction dans mon code
et cmt je peux faire un traitement bien defini de mes données dans le fichier selon une fonction
ou et comment je vais inserer cette fonction dans mon code
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
31 oct. 2010 à 19:02
31 oct. 2010 à 19:02
Il n'y a pas de points particuliers.
C'est comme pour une fonction classique.
Tu as le choix entre ouvrir le fichier dans ta fonction : à utiliser si tu te resserviras pas du fichier en dehors de ta fonction.
Ou tu ouvres le fichier dans le main, et tu l'envoies en argument de fonction.
Cdlt,
C'est comme pour une fonction classique.
Tu as le choix entre ouvrir le fichier dans ta fonction : à utiliser si tu te resserviras pas du fichier en dehors de ta fonction.
Ou tu ouvres le fichier dans le main, et tu l'envoies en argument de fonction.
Cdlt,
sdfsam
Messages postés
60
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 mai 2011
2 nov. 2010 à 10:03
2 nov. 2010 à 10:03
c'est pas claire
je veux traiter mes donner de telle sorte de sortir les informations necessaire.
mes données sont : soit des porte logique ou leur entrées
exp: g*1 g+2 e+1 signifie que la porte g*1 est AND numéro1 et g+2 porte OR numéro 2 et e+1 evenemt normal c'est des appleation.
je dois faire un traitement
j'ai fais un code mais marche pas
je veux traiter mes donner de telle sorte de sortir les informations necessaire.
mes données sont : soit des porte logique ou leur entrées
exp: g*1 g+2 e+1 signifie que la porte g*1 est AND numéro1 et g+2 porte OR numéro 2 et e+1 evenemt normal c'est des appleation.
je dois faire un traitement
j'ai fais un code mais marche pas
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
3 nov. 2010 à 20:09
3 nov. 2010 à 20:09
Au lieu de reposter sur un autre sujet, tu ferais mieux de continuer ici.
Sinon pour traiter le fichier, cela dépend comment sont codées les informations.
Si c'est toujours : 1 caractère, 1 opérateur, un caractère, ...
Alors, il te suffit de faire des fgetc pour lire le fichier et récupèrer les données caractère par caractère. Après, un switch pour déterminer l'opérateur fera l'affaire.
Cdlt,
Sinon pour traiter le fichier, cela dépend comment sont codées les informations.
Si c'est toujours : 1 caractère, 1 opérateur, un caractère, ...
Alors, il te suffit de faire des fgetc pour lire le fichier et récupèrer les données caractère par caractère. Après, un switch pour déterminer l'opérateur fera l'affaire.
Cdlt,
sdfsam
Messages postés
60
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 mai 2011
3 nov. 2010 à 22:22
3 nov. 2010 à 22:22
merci de m'avoir repondu,
desolé vous m'avez pas compris les informations dans le fichier sont codées de la maniere suivant:
<Portelogique> <espace> <Entrées de cette porte logique>
or on peut faire desappellation comme on veux moi j'ai opté à les appellations
dessus
EXPLICATION: les portes
g--> pour gate
*--> porte and
+--> porte OR
1,2--> indexe de la porte
donc
g*1--> signifie PORTE AND numéro1
LES EVENEMETS:
e: evenement
n: normal
c: complementair
1,2 indexe
en1-->événement normal numéro1
ec1-->événement normal numéro1
j'espère que vous m'avez compris avec cette explication.
merci de m'aider
desolé vous m'avez pas compris les informations dans le fichier sont codées de la maniere suivant:
<Portelogique> <espace> <Entrées de cette porte logique>
or on peut faire desappellation comme on veux moi j'ai opté à les appellations
dessus
EXPLICATION: les portes
g--> pour gate
*--> porte and
+--> porte OR
1,2--> indexe de la porte
donc
g*1--> signifie PORTE AND numéro1
LES EVENEMETS:
e: evenement
n: normal
c: complementair
1,2 indexe
en1-->événement normal numéro1
ec1-->événement normal numéro1
j'espère que vous m'avez compris avec cette explication.
merci de m'aider
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
3 nov. 2010 à 23:26
3 nov. 2010 à 23:26
Si vous optez pour votre exemple, fgetc fonctionnera très bien.
Si vous souhaitez pour n'importe quel mot, vous pouvais utiliser fscanf sur le format %s.
Je vois pas ce qui vous bloque.
Cdlt,
Si vous souhaitez pour n'importe quel mot, vous pouvais utiliser fscanf sur le format %s.
Je vois pas ce qui vous bloque.
Cdlt,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sdfsam
Messages postés
60
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 mai 2011
4 nov. 2010 à 16:00
4 nov. 2010 à 16:00
mon problème est comment je commence ma déclaration et traiter ces données la .
aider à construire le code
aider à construire le code