Dois-je créer un fichier ?

Fermé
gilk - 12 juin 2013 à 22:35
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 juin 2013 à 22:16
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
12 juin 2013 à 22:44
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
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
13 juin 2013 à 16:47
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
merci bcp !!!
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
13 juin 2013 à 22:16
Et n'oublie pas de mettre fclose(fichier); pour le fermer ;-)
0