Namespaces
Variants

std::strstreambuf:: pcount

From cppreference.net
int pcount ( ) const ;
(obsolète en C++98)
(supprimé en C++26)

Retourne le nombre de caractères écrits dans la séquence de sortie.

Si le pointeur suivant pour la zone de mise en place ( std::streambuf::pptr() ) est un pointeur nul, retourne zéro.

Sinon, retourne le pointeur suivant dans la zone de mise moins le pointeur de début dans la zone de mise, c'est-à-dire pptr ( ) - pbase ( ) .

Table des matières

Paramètres

(aucun)

Valeur de retour

Le nombre de caractères écrits dans la zone de sortie.

Exemple

#include <iostream>
#include <strstream>
int main()
{
    std::strstream dyn; // tampon de sortie alloué dynamiquement
    dyn << "Test: " << 1.23 << std::ends;
    std::strstreambuf* buf = dyn.rdbuf();
    std::cout << "La taille de la sortie est "
              << buf->pcount() // ou simplement buf.pcount()
              << " et elle contient \"" << dyn.str() << "\"\n";
    dyn.freeze(false); // après l'appel à .str() sur un strstream dynamique
    char arr[10];
    std::ostrstream user(arr, 10); // tampon de sortie fourni par l'utilisateur
    buf = user.rdbuf();
    user << 1.23; // note : pas de std::ends
    std::cout.write(arr, buf->pcount()); // ou simplement user.pcount()
    std::cout << '\n';
    std::istrstream lit("1 2 3"); // tampon fixe en lecture seule
    buf = lit.rdbuf();
    // istrstream n'a pas de fonction membre pcount(), donc lit.pcount() ne fonctionnera pas
    std::cout << "pcount() en entrée seule = " << buf->pcount() << '\n';
}

Sortie :

La taille de la sortie est 11 et elle contient "Test: 1.23"
1.23
pcount() en entrée seule = 0

Voir aussi

obtient le nombre de caractères écrits
(fonction membre publique de std::strstream )
obtient le nombre de caractères écrits
(fonction membre publique de std::ostrstream )