![]() |
|
Модераторы: xvr |
![]()
|
|
| n4ela |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 15.8.2009 Репутация: нет Всего: нет |
Доброго времени суток. Возник следующий вопрос по boost\у.
Ответ от сервера храню в переменной типа boost::asio::streambuf Получаю его так:
Ответ получается по частям, мне надо объединить весь ответ в строку и уже с ней работать. Как преобразовать эти два типа, не нашел. Единственное что, где то наткнулся что можно так:
tempStr и str - string Но не работает, на выходи я получаю либо пустую строку, либо первую строчку ответа. Это сообщение отредактировал(а) n4ela - 25.9.2009, 00:08 |
||||
|
|||||
| vinick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
operator >> для строк читает до первого пробельного символа, т.е ты тут читаешь только первое слово. Надо тогда организовывать внутренний цикл и вычитывать в нем все содержимое response, но тогда при использовании >> будут утеряны внутренние пробелы. |
|||
|
||||
| n4ela |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 15.8.2009 Репутация: нет Всего: нет |
То есть не какой встроенного метода, для преобразование в string вообще не предусмотрено?
И придется городить костыли, по типу: "пока не считан весь ответ istr >> tempStr; tempStr += " ";" А как тогда можно присвоит istr значение response. т.е. если std::istream istr(&response); объявленно до цикла? istr = &response istr = response Так вроде нельзя. |
|||
|
||||
| vinick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
||||
|
||||
| n4ela |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 15.8.2009 Репутация: нет Всего: нет |
А чем его можно заменить, я так понимаю сразу в string считывать нельзя.
http://www.boost.org/doc/libs/1_38_0/doc/h...rence/read.html |
|||
|
||||
| vinick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
||||
|
||||
| n4ela |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 15.8.2009 Репутация: нет Всего: нет |
Что бы юзать vector<char> надо точно знать размер ответа с сервера, а как это узнать я не в курсе.
Вот код http://paste.org.ru/?s7yyx0 Мне надо просто получить ответ с сервера и уже работать с ним как с текстом. Каким способом это будет реализовано мне принципе все равно. |
|||
|
||||
| vinick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 4 Всего: 22 |
||||
|
||||
| n4ela |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 15.8.2009 Репутация: нет Всего: нет |
Спасибо большое, сам сразу не догадался. Через read_until все получилось.
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 3 Всего: 33 |
n4ela, Если ответ получен, отметьте тему решенной!
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |