Probleme avec le fgetc.....

raziel62 Messages postés 53 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 17 septembre 2005 - 8 sept. 2004 à 22:25
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 22 oct. 2004 à 14:15
salut,
j'ai un prob en C avec la fonction fgetc.

Je voudrai mettre dans une variable le contenu d'un fichier .txt puis l'afficher

j'ai fait ce code mais il marche pas

#include <stdio.h>
#include
#include <stdlib.h>
FILE *fichier;
char mot;
void main()
{
fichier = fopen ("mot.txt", "w+");
mot = fgetc(fichier);
fclose(fichier);
printf ("%c", mot);
}

31 réponses

cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
9 sept. 2004 à 21:17
En fait là j'essaie d'apprendre tous les apis utile et leur maitrise.
Je pense que les mfc ne font que les réutiliser, et puis le fait qu'il faille toute la dll derrière ne me plait pas.

Mais comme l'a dit NitRic, tout dépend des besoins du projet en question, de l'utilisation qui va en être faite, de ses besoins d'optimisation, et du temps qu'on a à investir.

eRoZion
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
10 sept. 2004 à 09:07
k
Magic Nono: l'informagicien! 8-)
0
raziel62 Messages postés 53 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 17 septembre 2005
14 sept. 2004 à 13:41
ok ça marche merci pour les reponces,

mais il ne m'affiche que 1 caractere, alors que je voudrai le mot entier. J'ai essayé avec un tableau de caractere mais ça ne marche pas, quelles modifications je doit faire pour quil me mette le mot entier svp?
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
14 sept. 2004 à 14:33
printf ("%c", *mot);
affiche 1 car , C normal

printf ("%s", mot);
affichera la chaine comme

puts(mot);

++
Magic Nono: l'informagicien! 8-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
raziel62 Messages postés 53 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 17 septembre 2005
16 sept. 2004 à 08:37
salut, c bon j'ai trouver comment faire, j'ai utiliser fscanf plutot que fgetc, c'est plus simple

#include <stdio.h>
FILE *fichier;
char mot[10];
void main()

{
fichier = fopen ("mot.txt", "r");
fscanf (fichier, "%s", &mot);
fclose(fichier);
printf ("%s", mot);
}

Merci pour l'aide ça m'a bien aider ;)

a+
0
raziel62 Messages postés 53 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 17 septembre 2005
16 sept. 2004 à 08:40
j'ai encor un probléme lol,

je voudrai mettre dans mon fichier texte une liste de mots, et je voudrai appliqué le fscanf à une ligne donnée

par exemple, afficher le mot de la ligne 5.

mais je sais pas du tout comment faire?
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
17 sept. 2004 à 11:54
gogo mes sources

BFichierTxt

fonction

getLine ou similaire
++

Magic Nono: l'informagicien! 8-)
0
raziel62 Messages postés 53 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 17 septembre 2005
21 oct. 2004 à 08:31
salut,
non j'ai pas fait comme ça
j'ai fait ça:

#include <stdio.h>
FILE*fichier
int i;
int nbr
char mot;
void main()
{
scanf ("%d", &nbr);
fichier = fopen ("mot.txt", "r");
for (i=0; i<=nbr; i++)
fscanf (fichier, "%s", &mot);
fclose(fichier);
}

la il va prendre le mot de la ligne nbr
puisque j'ai remarquer que si on fait plusieurs fscanf a la suite, ça passe a la ligne suivante.

Si tu a une solution qui simplifierai le code, ça serai bien car c'est un peu de la bidouille :)
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
21 oct. 2004 à 09:06
moué

va au ieme '\n' en parcourant car par car

et ton truc ne marche que si y a qu'un mot par ligne et pas plusieurs séparés par des espaces

et arrete ces var globales !!!! grrrrr

voici ma rep (non testée, écrit en ligne)

#include <stdio.h>
int main()
{
FILE*fichier
int i,nb;
char mot;

scanf ("%d", &nb);
fichier = fopen ("mot.txt", "r");
if(fichier==NULL)return -1;
for(i=1;i<nb && c!=EOF;)
{
c=fgetc(f);
if(c=='\n')i++;
}
fscanf (fichier, "%s", &mot);
fclose(fichier);
....
return 0;
}

k?

Magic Nono: l'informagicien! 8-)
0
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
21 oct. 2004 à 21:15
Bravo!

fscanf(fichier, "%s", &mot); /* félicitation */

Je sais pas pour vous mais moi pour les caractères j'utilise %c

~(.:: NitRic ::.)~
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
22 oct. 2004 à 14:15
NitRic> lol

cf tout ce post

Magic Nono: l'informagicien! 8-)
0
Rejoignez-nous