Dois-je créer un fichier ?

gilk -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

L'exercice demande:
Ecrire un programme en langage C qui détermine dans un fichier de texte dont le nom est entré au clavier :
1-le nombre de caractères qu'il contient,

Je n'ai aucune idée de comment résoudre cet exercice!

aidez-moi SVP ?
merci
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bah :
0 - compteur<-0
1 - lecture clavier
2 - ouverture du fichier
3 - une boucle : tant que non fin de fichier, compteur<-compteur+1
4 - afficher compteur

A toi de coder en C
1
gilk
 
merci c très gentil!
J'ai écris le code en C :
#include <stdio.h>
#include <stdlib.h>

int main()
{char nomfich[50];
FILE* fichier;
//Saisie du nom du fichier
printf ("Saisissez le nom du fichier : ") ;
scanf ("%s", nomfich) ;
fopen("nomfich","r");
//nbre de caractères qu'il contient
int cpt=0;
while(fgetc(nomfich)!=feof)
cpt=cpt+1;
printf("%d caracteres",cpt);


system("PAUSE");
return 0;
}

J'ai un problème c'est que après la saisie du nom du fichier, y a plus rien et ça bloque !
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
fopen("nomfich","r");
Si tu mets nomfich entre guillemet, tu parles de la chaîne de caractère "nomfich" et non de la variable du même nom.
De plus, il faut récupérer le retour de la variable, qui te permettra de lire le fichier.
Ce qui donne : fichier=fopen(nomfich,"r");

int cpt=0;
C'est mieux de le mettre à côté de char nomfich[50];

while(fgetc(nomfich)!=feof)
Plutôt : while(fgetc(fichier)!=EOF)

Cdlt,
1
gilk
 
merci bcp !!!
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Et n'oublie pas de mettre fclose(fichier); pour le fermer ;-)
0