[C++] Fonction compte nombre de ligne fichier
Résolu
J'essai de coder une fonction en c++ pour compter le nombre de lignes d'un fichier texte.
J'ai deja écrit ce code mais j'obtient des erreurs de compilation et je ne sais pas pourquoi ...
#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 ...
Configuration: Windows XP Firefox 2.0.0.1
4 réponses
-
#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 -
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:: -
Bonjour,
autre commentaires...
le fait d'utiliser :
using namespace std;
ne t'oblige pas à écrire :
std::ifstream ...
simplement
ifstream ...
devrait suffire.
Lupin -
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