我尝试使用以下代码输入字符串,查找范围,然后复制到输出
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: "
接受输入的提示?
谢谢!