如何读取标准输入到std :: stringstream直到Ctrl-D(传输结束)?

时间:2017-04-11 23:03:18

标签: c++ stringstream

如何对多行进行标准输入并将其存储到std::streamstring中,直到用户按下 Ctrl-D 来表示输入结束?我想做this之类的事情,但是对于可变的输入行。如何通过用户按下 Ctrl-D 信号来检查传输信号的结束?

    string std_input;
    stringstream stream(std_input);
    while (getline(cin, std_input))
        stream(std_input);     

2 个答案:

答案 0 :(得分:5)

我认为最简单的方法是将std::cin的底层缓冲区传递给字符串流,因为它有std::basic_streambuf的重载

std::ostringstream sstream;
sstream << std::cin.rdbuf();

答案 1 :(得分:3)

这对我有用:

string std_input;
stringstream stream;
while (getline(cin, std_input)) {
  stream << std_intput << endl;
}