2

如何从std::istreamusing中读取operator>>

我尝试了以下方法:

void foo(const std::istream& in) {
  std::string tmp;
  while(in >> tmp) {
     std::cout << tmp;
  }
}

但它给出了一个错误:

error: no match for 'operator>>' in 'in >> tmp'
4

3 回答 3

10

运算符 >> 修改流,所以不要通过 const,只是一个引用。

于 2009-08-19T22:38:32.573 回答
4

使用非常量引用:

void foo(std::istream& in) {
  std::string tmp;
  while(in >> tmp) {
     std::cout << tmp;
  }
}
于 2009-08-19T22:40:12.617 回答
1

你这样做是对的。你确定你包含了所有你需要的标题吗?(<string><iostream>)?

于 2009-08-19T22:33:51.787 回答