Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> очистить strstream 
V
    Опции темы
keV
Дата 17.12.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Добрый день!

Пожалуйста, помогите со следующей проблемкой.
Есть объект класса std::strstream, в который 
уже было что-то записано. Как снова сделать его пустым?


std::strstream ss;
ss << "aaaaaa";
.... // как-то очистить
ss << "bbbbbb" << ends;

Чтобы ss.str() указывала только на "bbbbbb"

Пробовал 
ss.seekp(0); ss.seekg(0);
Не помогает!

С уважением, Евгений.

PM MAIL   Вверх
nickless
Дата 17.12.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Код

ss.str("");



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
GIK
Дата 17.12.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 1
Всего: 14



Цитата

ends;

Кстати, что это такое? Первый раз вижу..... 


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
nickless
Дата 17.12.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



End of string, т.е. 0


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
En_t_end
Дата 17.12.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



nickless, 
Цитата(nickless @  17.12.2006,  20:18 Найти цитируемый пост)
End of string, т.е.

В таком случае в результате работы ss << "bbbbbb" << ends;
в ss окажется ИМХО два '\0'.
PM MAIL ICQ Skype GTalk Jabber   Вверх
Daevaorn
Дата 17.12.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(En_t_end @  17.12.2006,  17:28 Найти цитируемый пост)
в ss окажется ИМХО два '\0'. 

почему?
PM MAIL WWW   Вверх
En_t_end
Дата 17.12.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Daevaorn, 
Конструкция "bbbbbb" не означает : 
Код

arraytmp_stack[0] = 'b'
arraytmp_stack[1] = 'b'
...
arraytmp_stack[6] = '\0'

?

Это сообщение отредактировал(а) En_t_end - 17.12.2006, 18:33
PM MAIL ICQ Skype GTalk Jabber   Вверх
Daevaorn
Дата 17.12.2006, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(En_t_end @  17.12.2006,  19:32 Найти цитируемый пост)
?

Тогда токая конструкция обречена на бессмыслее?
Код

ss << "bbbbbb" << 1234;

Нетsmile
PM MAIL WWW   Вверх
keV
Дата 17.12.2006, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Цитата(nickless @ 17.12.2006,  16:04)
Код

ss.str("");

Но метод strstream::str() не имеет аргументов:
char *str();

PM MAIL   Вверх
nickless
Дата 17.12.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Их 2, перегруженных
Код
void str( string s );
и
string str();



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
keV
Дата 17.12.2006, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



А, я понял, я-то использую strstream, а нужно stringstream
Тогда и str("") работает!
Большое спасибо, nickless!
PM MAIL   Вверх
En_t_end
Дата 18.12.2006, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Daevaorn, 
Цитата(Daevaorn @  17.12.2006,  22:41 Найти цитируемый пост)
Нет

Странно, а почему:
Код

ss << "aaaaaa";

Код

char some[] =  "aaaaaa";
strlen(some);

В результате их работы не происходит потеря '\0' ?

Это сообщение отредактировал(а) En_t_end - 18.12.2006, 08:43
PM MAIL ICQ Skype GTalk Jabber   Вверх
En_t_end
Дата 18.12.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Daevaorn, 
Цитата(Daevaorn @  17.12.2006,  22:41 Найти цитируемый пост)
Тогда токая конструкция обречена на бессмыслее?

Копирование в конец со смещением 0-я ?
PM MAIL ICQ Skype GTalk Jabber   Вверх
nickless
Дата 18.12.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



En_t_end,
Вобще-то stringstream работает со string-ом, а не с char*, а он не использует 0 как ограничение строки.
Даже если в целях оптимизации работы метода c_str() string добавляет 0 в конец буфера, какая разница? Он его точно так же удалит когда надо.


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.