IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Compter les lignes d'un fichier TXT


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 16
    Points : 1
    Points
    1
    Par défaut Compter les lignes d'un fichier TXT
    Salut!
    je veux compter le nombre des lignes j'ai essayer ce code mais il renvoie des valeurs comme : 23423423

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
     
     
    int main(int argc, char *argv[])
    {
    char mot[15];
    int c=0,li=0;
       FILE* fichier = NULL;
     
        fichier = fopen("test.txt", "r+");
     
       if (fichier != NULL)
        {
     
       while((c = fgetc(fichier)) != EOF){
        if(c == '\n')
        {
             li++;
        }
     
      }
           fclose(fichier);
        }
    printf("%d",&li);
     
        return 0;
    }
    Aussi j'aimerai créer une fonction qui compte les lignes si vous avez une idée
    Merciii

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Points : 719
    Points
    719
    Par défaut
    En premier, pense à mettre une balise code autour de ton source, ça aide les autres à le relire.

    En fait, tu as utilisé printf comme ceci :
    Avec l'ampersand &, tu as demandé à printf d'afficher l'adresse de la variable li, pas son contenu.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    aaah oui
    mais il y'a un petit problème il existe 9 lignes mais il m'affiche 8
    est ce normal ? peut être que je dois initialiser li par 1
    aussi comment créer une fonction qui compte les lignes des textes pour tous les fichiers

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    mais il y'a un petit problème il existe 9 lignes mais il m'affiche 8
    est ce normal ? peut être que je dois initialiser li par 1
    La dernière ligne est-elle bien terminée par un '\n' ?
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    je viens de faire un '\n' et ça marche

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par Slyer4ever Voir le message
    aaah oui
    mais il y'a un petit problème il existe 9 lignes mais il m'affiche 8
    est ce normal ? peut être que je dois initialiser li par 1
    Ton programme compte les caractères de retour à la ligne '\n'. Si tu comprends bien ce que ça veut dire, tu auras la réponse à ta question.
    En passant, suivant ton système d'exploitation, il est plus logique d'appeler fopen() avec l'argument "rt" plutôt que "r+", parce que tu veux une interprétation des retours à la ligne.

    Citation Envoyé par Slyer4ever Voir le message
    aaah oui
    aussi comment créer une fonction qui compte les lignes des textes pour tous les fichiers
    Tous les fichiers ? c'est à dire ? Tu vas clairement pas parcourir tout ton disque dur pour compter les lignes de tous les fichiers.
    Donc par exemple tu pourrais compter ceux passés en paramètre à ton programme, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./compte_lignes fichier1.txt fichier2.txt
    Pour ça, il faut que tu utilises argv et argc de ta fonction main(). Je suis sûr que ton livre de programmation en C a toute une section à ce sujet.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Non juste une fonction que je peux utiliser pour compter les fichiers que je veux
    pour argv et argc je sais pas comment les utiliser je chercherai pour mieux comprendre ce que tu veux dire

  8. #8
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Citation Envoyé par phi1981 Voir le message
    ...
    En passant, suivant ton système d'exploitation, il est plus logique d'appeler fopen() avec l'argument "rt" plutôt que "r+", parce que tu veux une interprétation des retours à la ligne.
    ...
    't' est non standard.
    'r' suffit pour ouvrir en mode texte donc avec une interprétation des fins de lignes.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  9. #9
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par diogene Voir le message
    't' est non standard.
    'r' suffit pour ouvrir en mode texte donc avec une interprétation des fins de lignes.
    Exact, merci.

Discussions similaires

  1. Compter les lignes d'un fichier CSV à partir d'une ligne
    Par miniRoshan dans le forum Général Java
    Réponses: 6
    Dernier message: 03/06/2010, 11h16
  2. Réponses: 4
    Dernier message: 02/06/2010, 17h23
  3. Programme pour compter les lignes d'un fichier texte?
    Par codon21 dans le forum Windows
    Réponses: 1
    Dernier message: 19/03/2009, 07h36
  4. Comparer les lignes d'un fichier txt
    Par Casimir* dans le forum VBScript
    Réponses: 3
    Dernier message: 28/08/2007, 15h12
  5. [CSV] Compter les lignes d’un fichier csv
    Par sam01 dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo