C++ использует istream_iterator для копирования и ostream_iterator для вывода

Я попытался использовать следующий код для ввода строк, поиска диапазона и копирования на выход

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 - единственный способ сообщить программе, что я закончил с вводом. Но это должно вывести потом? (кстати, я сделал вводные строки, включая "начало" и "конец", чтобы убедиться, что первый и последний итераторы верны).

Я также запустил вышеупомянутую программу из IDE (Xcode), но она не показывает никакой командной строки для ввода, есть ли какая-либо, чтобы показать это? или я должен сделать некоторые

cout << "Please enter words: " 

вид подсказки для ввода информации?

Спасибо!

0 ответов

Другие вопросы по тегам