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