Не удается получить getline () из istringstream (C ++) - PullRequest
3 голосов
/ 10 декабря 2011

У меня есть ранее объявленное 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 ]

5 голосов
/ 10 декабря 2011

Самый неприятный синтаксический анализ , добавьте пару скобок внутри конструктора response_stream.

istringstream response_stream((string(c)));
2 голосов
/ 10 декабря 2011

Хорошая демонстрация истинной "мощи" C ++.

То, как вы объявили переменную response_stream, на самом деле это функция, а не тип istringstream.

...