| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > очистить strstream |
| Автор: keV 17.12.2006, 13:40 |
| Добрый день! Пожалуйста, помогите со следующей проблемкой. Есть объект класса std::strstream, в который уже было что-то записано. Как снова сделать его пустым? std::strstream ss; ss << "aaaaaa"; .... // как-то очистить ss << "bbbbbb" << ends; Чтобы ss.str() указывала только на "bbbbbb" Пробовал ss.seekp(0); ss.seekg(0); Не помогает! С уважением, Евгений. |
| Автор: nickless 17.12.2006, 16:04 | ||
|
| Автор: GIK 17.12.2006, 16:14 | ||
Кстати, что это такое? Первый раз вижу..... |
| Автор: nickless 17.12.2006, 16:18 |
| End of string, т.е. 0 |
| Автор: En_t_end 17.12.2006, 16:28 |
| nickless, В таком случае в результате работы ss << "bbbbbb" << ends; в ss окажется ИМХО два '\0'. |
| Автор: Daevaorn 17.12.2006, 16:46 |
почему? |
| Автор: En_t_end 17.12.2006, 18:32 | ||
| Daevaorn, Конструкция "bbbbbb" не означает :
? |
| Автор: Daevaorn 17.12.2006, 18:41 | ||
Тогда токая конструкция обречена на бессмыслее?
Нет |
| Автор: keV 17.12.2006, 21:23 | ||||
Но метод strstream::str() не имеет аргументов: char *str(); |
| Автор: nickless 17.12.2006, 21:58 | ||
Их 2, перегруженных
|
| Автор: keV 17.12.2006, 22:34 |
| А, я понял, я-то использую strstream, а нужно stringstream Тогда и str("") работает! Большое спасибо, nickless! |
| Автор: En_t_end 18.12.2006, 08:21 | ||||
| Daevaorn, Странно, а почему:
В результате их работы не происходит потеря '\0' ? |
| Автор: En_t_end 18.12.2006, 09:05 |
| Daevaorn, Копирование в конец со смещением 0-я ? |
| Автор: nickless 18.12.2006, 15:47 |
| En_t_end, Вобще-то stringstream работает со string-ом, а не с char*, а он не использует 0 как ограничение строки. Даже если в целях оптимизации работы метода c_str() string добавляет 0 в конец буфера, какая разница? Он его точно так же удалит когда надо. |