Dois-je créer un fichier ?

gilk -  
fiddy Messages postés 441 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

2 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    1. gilk
       
      merci bcp !!!
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Et n'oublie pas de mettre fclose(fichier); pour le fermer ;-)
      0