Я попытался использовать следующий код для ввода строк, поиска диапазона и копирования на выход
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: "
вид подсказки для ввода информации?
Спасибо!
Задача ещё не решена.
Других решений пока нет …