搜索

首页  >  问答  >  正文

c++从控制台循环读入字符串,如何终止循环并正常执行后面的程序?

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>

using namespace std;

int main()
{
    //file();
    vector<string> coll;
    copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(coll));
    sort(coll.begin(), coll.end());
    unique_copy(coll.begin(), coll.end(), ostream_iterator<string>(cout, "\n"));

    return 0;
}

如果从文件读入,可以读入字符串并终止程序,并且正常执行后面的程序,就是可以打印出读入的字符串。但是如果是从控制台读入,就无法终止了,不知道这个时候该怎可办才能够让程序停止读入并正常执行下去。如果直接ctrl+c,就是把整个程序都直接终止了。

大家讲道理大家讲道理2805 天前621

全部回复(2)我来回复

  • PHP中文网

    PHP中文网2017-04-17 13:47:13

    Windows下ctrl z,*nix下ctrl d可以发送EOF给程序

    回复
    0
  • 迷茫

    迷茫2017-04-17 13:47:13

    可以设置一个退出循环的条件,比如读到quit这个字符串就退出循环继续执行。Librazy的回答是正解。

    如果说你需要实现Ctrl+C终止循环,并继续循环外的程序的话,可以用signal。这是操作系统提供的一套机制,当你按下Ctrl+C的时候,实际上是对这个进程发送了一个signal。

    回复
    0
  • 取消回复