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'
Était-ce utile?

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
scroll top