Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Очистка буфера ostrstream


Автор: Kuvaldis 30.3.2007, 12:01
Вот пример кода. Не получается очистить буфер.
Код

//---------------------------------------------------------------------------
#include <strstream>
#include <iostream>
#include <conio.h>
using namespace std;
//---------------------------------------------------------------------------
int main()
{
    ostrstream outputString;
    char* ptr;

    outputString <<  10 << ends;
    ptr = outputString.str();
    cout << ptr << endl << endl;

    outputString.freeze(false);    // ?????????
    outputString.clear();
    outputString.flush();

    outputString << 20;
    ptr = outputString.str();
    cout << ptr << endl;

    getch();
    return 0;
}
//---------------------------------------------------------------------------


Буду рад конструктивной критике

Автор: Fazil6 30.3.2007, 12:26
Цитата(Kuvaldis @  30.3.2007,  12:01 Найти цитируемый пост)
Буду рад конструктивной критике

почему ostrstream , а не ostringstream ????
ostrstream не рекомендован к использованию. ostringstream лучшее управление памятью и очистить его можно ostringstream::str("")

Добавлено через 9 минут и 26 секунд
 smile 
Код

outputString.clear();

это не очищение буфера, это очищение флагов состояния....  smile 

Автор: Kuvaldis 30.3.2007, 12:53
Fazil6, 
Цитата

почему ostrstream , а не ostringstream ????

Про что в книге прочитал... smile 
Цитата

это не очищение буфера, это очищение флагов состояния.... 

Да знаю я. После же flsush() не для красоты написал. Просто уже ничего не помогало. Думал, может дело во флагах. :(

Написал через sstream. Работает smile Сиба

P.S. Интересно, а по сабжу, все таки очистить можно?

Автор: _stranger_ 30.3.2007, 13:01
может вот так
Код

    outputString.seekp(0);
    outputString.freeze(false);    // ?????????
    outputString.clear();

Автор: Kuvaldis 30.3.2007, 13:08
_stranger_, 
Лови в репу smile 

Автор: korbian 30.3.2007, 14:48
попробуй так
Код

outputString.str("");
();

Автор: Fazil6 30.3.2007, 14:59
Цитата(korbian @  30.3.2007,  14:48 Найти цитируемый пост)
попробуй так


если бы все было так просто, то армянское радио этим вопросом не занималось бы

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)