Перевод этой страницы?:

str

Синтаксис:

    #include <sstream>
    void str( const string& s );
    string str();

Функция str() может использоваться двумя способами. Первый способ: она может использоваться для получения копии строки, управляемой текущим стоковым потоком. Это очень удобно для вывода строк.

Например:

    ostringstream stream1;
    stream1 << "Testing!" << endl;
    cout << stream1.str();

Второй способ: функция используется для копирования строки в поток. Это очень удобно для ввода строк.

Пример:

    istringstream stream1;
    string string1 = "25";
    stream1.str(string1);

Обратите внимание, эта операция оставляет указатели «get» и «put» со значениями 0. Это может привести к плачевным результатам при инициализации строкового потока stringstream, используемого для двунаправленных операций.

str() так же удобен, когда вам нужно очистить или сбросить поток, поэтому можно повториться:

ВНИМАНИЕ: функция clear() не стирает содержимое лежащего в основе строкового объекта, она только очищает состояние объекта ios, т.е. вызывает basic_ios::clear().

    istringstream stream1;
    float num;
 
    // использование в первый раз
    string string1 = "25 1 3.235\n1111111\n222222";
    stream1.str(string1);
    while( stream1 >> num ) cout << "num: " << num << endl;  // displays numbers, one per line
 
    // использование того же строкового потока с str()
    string string2 = "1 2 3 4 5  6 7 8 9 10";
    stream1.clear(); // not what you think!  But still required to clear the stream's IO state
    stream1.str(string2);
 
    while( stream1 >> num ) cout << "num: " << num << endl;  // displays numbers, one per line

Смотрите также: rdbuf, C++ I/O Streams