Sdílet prostřednictvím


strstreambuf::freeze

Způsobí, že bude k dispozici prostřednictvím operace vyrovnávací paměti datového proudu vyrovnávací paměti datového proudu.

void freeze( 
   bool _Freezeit = true 
);

Parametry

  • _Freezeit
    A bool označující, zda chcete, aby proud má být zmrazen.

Poznámky

Pokud _Freezeit je true, změní uloženou funkci strstreambuf režimu provádět řízené sekvenci zmrazené.V opačném případě se provádí řízené sekvence nesmí zmrznout.

str implies freeze.

[!POZNÁMKA]

Zmrazené vyrovnávací paměti nebude uvolněna během strstreambuf zničení.Musíte uvolnit vyrovnávací paměti, než je uvolněna, aby se zabránilo nevracení paměti.

Příklad

// 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);
}
  

Požadavky

Záhlaví:<strstream>

Obor názvů: std

Viz také

Referenční dokumentace

strstreambuf – třída

iostream – programování

iostreams – konvence