Comment puis-je lire un std :: istream (utilisant l'opérateur >>)?
-
19-09-2019 - |
Question
Comment puis-je lire un std::istream
en utilisant operator>>
?
J'ai essayé ce qui suit:
void foo(const std::istream& in) {
std::string tmp;
while(in >> tmp) {
std::cout << tmp;
}
}
Mais il donne une erreur:
error: no match for 'operator>>' in 'in >> tmp'
La solution
Opérateur >> modifie flux, donc ne passe pas par const, juste une référence.
Autres conseils
utiliser une référence non-const:
void foo(std::istream& in) {
std::string tmp;
while(in >> tmp) {
std::cout << tmp;
}
}
Vous faites que la bonne façon. Êtes-vous sûr d'inclure tous les en-têtes dont vous avez besoin? (<string>
et <iostream>
)?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow