Freigeben über


strstreambuf::freeze

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

void freeze(
   bool _Freezeit = true
);

Parameter

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

Hinweise

Wenn _Freezeit erfüllt ist, wird die Funktion den gespeicherten strstreambuf Modus, um die gesteuerte eingefrorene Sequenz zu machen.Andernfalls macht sie die gesteuerte nicht eingefrorene Sequenz.

str bedeutet freeze.

HinweisHinweis

Ein eingefrorener Puffer wird bei strstreambuf Zerstörung freigegeben.Sie müssen den Puffer auftauen, bevor er freigegeben wird, um Speicherverluste 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 Class

Programmierung der iostream-Headerdatei

iostreams Konventionen