Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Hinweis |
|---|
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
Hinweis