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

How to read standard input into std::stringstream until Ctrl-D (end of transmission)?

如何获取多行标准输入并将其存储到 std::streamstring 中,直到用户按下 Ctrl-D 以发出输入结束信号?我想做一些类似 的事情,但是对于可变的输入行。如何检查用户按 Ctrl-D 发出的传输信号结束?

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

这对我有用:

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

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

有过载
std::ostringstream sstream;
sstream << std::cin.rdbuf();