Freigeben über


strstreambuf::freeze

Bewirkt einen Streampuffer, durch Streampuffervorgänge nicht verfügbar sein.

void freeze( 
   bool _Freezeit = true 
);

Parameter

  • _Freezeit
    Ein bool, ob Sie den Stream fixiert werden soll.

Hinweise

Wenn _Freezeit true ist, wird die Funktion der gespeicherten strstreambuf Modus, um die eingefrorene gesteuerte Sequenz zu machen. Andernfalls stellt sie die nicht eingefrorene gesteuerte Sequenz.

str bedeutet freeze.

Hinweis

Ein eingefrorener Puffer wird bei Zerstörung strstreambuf freigegeben.Sie müssen des Puffers entsperren, bevor er freigegeben wird, um einen Speicherverlust zu vermeiden.

Beispiel

// strstreambuf_freeze.cpp
// compile with: /EHsc

#include <iostream>
#include <strstream>

using namespace std;

void report(strstream &x)
{
    if (!x.good())
        cout << "stream bad" << endl;
    else
        cout << "stream good" << endl;
}

int main()
{
    strstream x;

    x << "test1";
    cout << "before freeze: ";
    report(x);

    // Calling str freezes stream.
    cout.write(x.rdbuf()->str(), 5) << endl;
    cout << "after freeze: ";
    report(x);

    // Stream is bad now, wrote on frozen stream
    x << "test1.5";
    cout << "after write to frozen stream: ";
    report(x);

    // Unfreeze stream, but it is still bad
    x.rdbuf()->freeze(false);
    cout << "after unfreezing stream: ";
    report(x);

    // Clear stream
    x.clear();
    cout << "after clearing stream: ";
    report(x);

    x << "test3";
    cout.write(x.rdbuf()->str(), 10) << endl;

    // Clean up.  Failure to unfreeze stream will cause a
    // memory leak.
    x.rdbuf()->freeze(false);
}
  

Anforderungen

Header: <strstream>

Namespace: std

Siehe auch

Referenz

strstreambuf-Klasse

iostream-Programmierung

iostreams-Konventionen