0

我尝试使用以下代码输入字符串,查找范围,然后复制到输出

int main(int argc, const char * argv[])
 {

  vector<string> vec;
  copy(istream_iterator<string>(cin), istream_iterator<string>(),back_inserter(vec));
  vector<string>::iterator first = find(vec.begin(),vec.end(),"start");
  vector<string>::iterator last = find(vec.begin(),vec.end(),"end");

  if(first < last)
    copy(first,last,ostream_iterator<string>(cout,"\n"));

  return 0;
 }

我从 unix 命令行运行程序,并使用 (ctrl+z) 终止输入,但没有任何内容写入终端。我在 istream_iterator 上阅读了其他线程,我认为 ctrl+z 是告诉程序我已完成输入的唯一方法。但它应该在之后输出吗?(顺便说一句,我确实输入了包括“start”和“end”在内的字符串,以确保第一个和最后一个迭代器有效)。

我还从 IDE (Xcode) 运行了上述程序,但它没有显示任何输入命令行,有没有显示的?还是我必须做一些

cout << "Please enter words: " 

接受输入的提示?

谢谢!

4

0 回答 0