Namespaces
Variants

std::strstreambuf:: pcount

From cppreference.net
int pcount ( ) const ;
(in C++98 veraltet)
(in C++26 entfernt)

Gibt die Anzahl der in die Ausgabesequenz geschriebenen Zeichen zurück.

Wenn der nächste Zeiger für den Put-Bereich ( std::streambuf::pptr() ) ein Nullzeiger ist, gibt null zurück.

Andernfalls wird der nächste Zeiger im Put-Bereich minus dem Anfangszeiger im Put-Bereich zurückgegeben, das heißt pptr ( ) - pbase ( ) .

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

Die Anzahl der Zeichen, die in den Put-Bereich geschrieben wurden.

Beispiel

#include <iostream>
#include <strstream>
int main()
{
    std::strstream dyn; // dynamisch allozierter Ausgabepuffer
    dyn << "Test: " << 1.23 << std::ends;
    std::strstreambuf* buf = dyn.rdbuf();
    std::cout << "Die Größe der Ausgabe ist "
              << buf->pcount() // oder einfach buf.pcount()
              << " und sie enthält \"" << dyn.str() << "\"\n";
    dyn.freeze(false); // nach Aufruf von .str() auf einem dynamischen strstream
    char arr[10];
    std::ostrstream user(arr, 10); // benutzerdefinierter Ausgabepuffer
    buf = user.rdbuf();
    user << 1.23; // Hinweis: kein std::ends
    std::cout.write(arr, buf->pcount()); // oder einfach user.pcount()
    std::cout << '\n';
    std::istrstream lit("1 2 3"); // schreibgeschützter Festgrößenpuffer
    buf = lit.rdbuf();
    // istrstream hat keine pcount()-Memberfunktion, daher funktioniert lit.pcount() nicht
    std::cout << "Nur-Eingabe pcount() = " << buf->pcount() << '\n';
}

Ausgabe:

Die Größe der Ausgabe ist 11 und sie enthält "Test: 1.23"
1.23
Nur-Eingabe pcount() = 0

Siehe auch

ermittelt die Anzahl der geschriebenen Zeichen
(öffentliche Elementfunktion von std::strstream )
ermittelt die Anzahl der geschriebenen Zeichen
(öffentliche Elementfunktion von std::ostrstream )