Ben c'est assez explicite : il arrive pas à trouver la fonction getline telle que tu l'appelle (avec les type d'arguments et tout).
La tu peux donc aller sur ce site que j'apprécie pour sa documentation bien fournie sur la std et tu cherches getline.
Pof tu tombes sur la page de manuel et tu vois la déclaration de la fonction :
1 2
| istream& getline ( istream& is, string& str, char delim );
istream& getline ( istream& is, string& str ); |
Et la tu peux regarder de nouveau ton message d'erreur :
|22|error: no matching function for call to 'getline(std::ifstream&, int&)'|
Donc tu vois ici que tu envoie bien un std::ifstream& comme premier paramètre comme le préconise la doc mais le deuxième argument est de type int& alors qu'on te demande une string&. Ainsi, tu as deux réponses :
Pourquoi sa marche pas : mauvaise utilisation de la fonction (avec le temps tu connaitera la plupart des messages d'erreur les plus courants du compilo)
Comment y remédier : lui donner à manger une std::string& au lieu d'un int& puis ensuite traiter la std::string& pour l'extraire dans ton int&.
En espérant avoir été assez clair et t'avoir aidé,
Bonne soirée
Partager