 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
TSalm Guest
|
Posted: Wed May 10, 2006 12:22 pm Post subject: [newbie] dev-c++ et std::getline(ifstream , string) |
|
|
Bonjour à tous,
Dev-cpp refuse de compiler un programme utilisant
std::getline(ifstream,string). Il me dit :
no matching function for call to `getline(std::istream&, std::string
(&)())'
Si quelqu'un a un idée d'avance merci
Ci-dessous le code complet :
#include <string>
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
void usage() {
cout << "Usage: nomFichier texteAChercher" << endl;
}
/* Retourne 0 en cas d'erreur, sinon 1 */
int testOuvertureFichier(ifstream &file) {
// teste ouverture :
if ( !file )
{
cerr << "Erreur d'ouverture\n";
return 0;
}
// teste lecture
string line;
if ( ! ( file >> line ) )
{
cerr << "Erreur de lecture\n";
return 0;
}
return 1;
}
int exit() {
system("PAUSE");
return EXIT_SUCCESS;
}
int main(int argc, char *argv[])
{
if (argc != 3) {
cout << "Erreur dans les paramétres :" << endl;
cout << "Vous avez entrée "<<argc<<" paramétres"<<endl;
usage();
return exit();
}
string fichier = argv[1];
string text = argv[2];
string ligne ();
unsigned int ligne_nbr = 0;
ifstream in(fichier.c_str());
if (testOuvertureFichier(in) == 0) {
cout << "Echec dans l'ouverture du fichier " << fichier << endl;
exit();
}
std::getline (cin , ligne);
while (std::getline(in , ligne)) {
// voir si chaine dans la ligne :
if (ligne.find(text) != std::npos)
cout << ligne_nbr << ": " << ligne << endl;
++ligne_nbr;
}
exit();
} |
|
| Back to top |
|
 |
Guest
|
Posted: Wed May 10, 2006 12:22 pm Post subject: Re: dev-c++ et std::getline(ifstream , string) |
|
|
merci !
(j'avais pas vu les réponse, désolé :/ ) |
|
| Back to top |
|
 |
Guest
|
Posted: Wed May 10, 2006 12:22 pm Post subject: Re: dev-c++ et std::getline(ifstream , string) |
|
|
Il y a également une autre erreur dans mon prog :
remplacer
std::npos par std::string::npos |
|
| Back to top |
|
 |
Guest
|
Posted: Wed May 10, 2006 12:22 pm Post subject: Re: dev-c++ et std::getline(ifstream , string) |
|
|
bon, je viens de trouver : je devais juste initaliser le string de la
façon :
string ligne("");
mais je vois pas le rapport avec le message d'erreur ?? |
|
| Back to top |
|
 |
Michel Decima Guest
|
Posted: Wed May 10, 2006 12:22 pm Post subject: Re: [newbie] dev-c++ et std::getline(ifstream , string) |
|
|
"TSalm" <nospam (AT) nospam (DOT) no> a écrit dans le message de
news:4461cfdf$0$14029$626a54ce (AT) news (DOT) free.fr...
| Quote: | Bonjour à tous,
Dev-cpp refuse de compiler un programme utilisant
std::getline(ifstream,string). Il me dit :
no matching function for call to `getline(std::istream&, std::string
(&)())'
|
Tu veux appeler une fonction getline dont le deuxieme parametre est une
reference
sur une chaine /std::string&/, et le compilateur te dit qu'il ne trouve pas
de
fonctions getline dont le deuxieme parametre est un une reference vers une
fonction
qui renvoie une chaine et ne prends aucun parametres /std::string (&)()/
Dans le main, la variable ligne est declaree comme ceci:
string ligne();
Ce qui est effectivement la declaration d'une fonction. En enlevant les
parentheses,
ca devrait aller beaucoup mieux:
string ligne; |
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Wed May 10, 2006 12:22 pm Post subject: Re: [newbie] dev-c++ et std::getline(ifstream , string) |
|
|
TSalm <nospam (AT) nospam (DOT) no> writes:
| Quote: | Bonjour à tous,
Dev-cpp refuse de compiler un programme utilisant
std::getline(ifstream,string). Il me dit :
no matching function for call to `getline(std::istream&, std::string (&)())'
|
Il te dis que tu appelles getline avec comme second argument une
fonction retournant un string...
Cette ligne
ne fait pas ce que tu crois. Elle declare une fonction et ne definit
pas une variable en appelant le constructeur par defaut comme tu dois
le croire.
string ligne;
| Quote: | if (ligne.find(text) != std::npos)
|
std::string::npos
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|