[C++] Fonction compte nombre de ligne fichier

Résolu
Zangdar -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
J'essai de coder une fonction en c++ pour compter le nombre de lignes d'un fichier texte.

#include <string>
#include <fstream>
#include <iostream>

using namespace std;
int nombreLignes (string fichier);

int main()
{
    string fichier("\"noeud.txt\"");
    cout << fichier <<endl;
    cout<<nombreLignes(fichier) <<endl;

    return 0;
}

//Fonction qui renvoi le nombre de ligne d'un fichier
int nombreLignes (string fichier2) {

    std::ifstream fichier(fichier2);
    int Count = 0;
    std::string s;

    if ( fichier ) {
        while (std::getline(fichier, s)) {Count++;}
        return Count;
    }

    else { cout << "echec" <<endl;}
    return 0;
}



J'ai deja écrit ce code mais j'obtient des erreurs de compilation et je ne sais pas pourquoi ...
A voir également:

4 réponses

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
#include <string>
#include <fstream>
#include <iostream>

int nombreLignes (const std::string & filename) {
    std::ifstream fichier(filename.c_str());
    std::string s;

    if(fichier){
        unsigned int count = 0;
        while(std::getline(fichier,s)) ++count;
        return count;
    }else{
        std::cout << "Ne peut ouvrir " << filename << std::endl;
    }
    fichier.close();
    return 0;
}

int main(int argc,char **argv)
{
    if(argc != 2){
        std::cerr << "usage " << argv[0] << " fichier" << std::endl;
        return 1;
    }
    std::cout << nombreLignes(argv[1]) << std::endl;
    return 0;
}

Bonne chance
9
Moi
 
C'est moi où t'essayes de lire le fichier "noeud.txt" ?
Essayes en faisant:
string fichier("noeud.txt");
Et pis comme l'a très bien dit Lupin, vires tous les std::
2
Utilisateur anonyme
 
Bonjour,

autre commentaires...


le fait d'utiliser :

using namespace std;

ne t'oblige pas à écrire :

std::ifstream ...

simplement

ifstream ...

devrait suffire.

Lupin
1
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
essai:
string fichier("noeud.txt");
et :
std::ifstream fichier(fichier2.c_str());
sinon, tu met un caractère guillement dans ton nom de fichier, ce qui doit pas être top
pour le deuxième, il me semble qu'il faut un cahr* et non un string
0