不能从istringstream(C ++)获取getline()

时间:2011-12-09 21:50:58

标签: c++ string iostream stringstream

我有一个先前声明的char c[64];,我正试图查看管道输出的第一个字:

read(pipe_replacement_to_main[READ_END], c, BUF_SIZE);
istringstream response_stream(string(c));
string response_string;
getline(response_stream, response_string, ' ');

gcc在第四行给出了以下内容:

error: no matching function for call to ‘getline(std::istringstream (&)(std::string), std::string&, char)’

我甚至无法弄清楚它是如何调用该函数的。我是否声明了istringstream错误?

2 个答案:

答案 0 :(得分:5)

Most vexing parse,在response_stream的构造函数中添加一对括号。

istringstream response_stream((string(c)));

答案 1 :(得分:2)

很好地展示了C ++的真正“力量”。

您声明response_stream变量的方式,它实际上是一个函数而不是istringstream类型。