Bonjour à tous
Après avoir placé un fichier en mémoire, je tente d'en extraire (au moins) une ligne.
J'ai placé les erreurs renvoyées en commentaire.
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 #include <fstream> #include <iostream> #include <sstream> int main() { std::ifstream fichier( "config.ini" ); std::stringstream buffer; buffer << fichier.rdbuf(); fichier.close(); std::cout << buffer.str().getline() << std::endl; // error : std::basic_stringstream<char>::__string_type' has no member named 'getline' std::cout << buffer.getline() << std::endl; // error: no matching function for call to 'std::basic_stringstream<char>::getline() }
Dans le premier cas il n'y aurait pas de membre du nom de getline. Pourtant un appel tel que :
fonctionne très bien. Et lorsque je lis le référentiel il existe bien pour string une méthode surchargée getline.
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::cout << buffer.str().find("test") << std::endl;
Pour le second cas, il ne trouve pas de fonction correspondante pour getline alors que la aussi, il existe une fonction getline héritée de istream selon le référentiel.
Il semblerait que je n'ai pas fourni d'arguments alors qu'il en faudrait dans le premier cas 3 et dans le second 2 selon les propositions candidates.
Comment puis-je alors écrire correctement ces appels pour simplement, extraire une ligne et l'afficher ?
Merci de vos conseils.
Partager