Namespace
Varianti

cpp/io/basic stringstream/str: differenze tra le versioni

Da cppreference.com.
(Import from dokuwiki)
 
m (una revisione importata: Import from Dokuwiki)

Versione delle 02:55, 1 mag 2012

Sintassi:

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

La funzione str() può essere usata in due modi: il primo per avere una copia della stringa che viene manipolata all'interno dello stream:

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

Nel secondo str() può essere usata per copiare una stringa dentro lo stream. Questo metodo è utile soprattutto con gli input streams. Esempio:

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

N.B.: Questa funzione lascia i puntatori "get" e "put" impostati a 0. Questo talvolta conduce a risultati confondenti quando si inizializza una stringstream per operazioni bidirezionali.

str() è utile anche quando è necessario azzerare lo strem cosicchè possa essere riutilizzato. __Attenzione__: la funzione membro clear() **non** cancella i contenuti dell'oggetto stringa contenuto nello stream, semplicemente si limita ad effettuare il clear dello stato dell'oggetto ios, cioè esegue la funzione equivalente di basic_ios::clear().

    istringstream stream1;
    float num;
 
    // use it once
    string string1 = "25 1 3.235\n1111111\n222222";
    stream1.str(string1);
    while( stream1 >> num ) cout << "num: " << num << endl;  // displays numbers, one per line
 
    // use the same string stream again with 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

Argomenti collegati: rdbuf, C++ I/O Streams