Namespaces
Variants

std::strstreambuf:: pcount

From cppreference.net
int pcount ( ) const ;
(устарело в C++98)
(удалено в C++26)

Возвращает количество символов, записанных в выходную последовательность.

Если указатель следующего символа для области вывода ( std::streambuf::pptr() ) является нулевым указателем, возвращает ноль.

В противном случае возвращает указатель на следующий элемент в области вывода минус указатель на начало области вывода, то есть pptr ( ) - pbase ( ) .

Содержание

Параметры

(нет)

Возвращаемое значение

Количество символов, записанных в область вывода.

Пример

#include <iostream>
#include <strstream>
int main()
{
    std::strstream dyn; // динамически выделенный выходной буфер
    dyn << "Test: " << 1.23 << std::ends;
    std::strstreambuf* buf = dyn.rdbuf();
    std::cout << "Размер вывода равен "
              << buf->pcount() // или просто buf.pcount()
              << " и он содержит \"" << dyn.str() << "\"\n";
    dyn.freeze(false); // после вызова .str() на динамическом strstream
    char arr[10];
    std::ostrstream user(arr, 10); // пользовательский выходной буфер
    buf = user.rdbuf();
    user << 1.23; // примечание: без std::ends
    std::cout.write(arr, buf->pcount()); // или просто user.pcount()
    std::cout << '\n';
    std::istrstream lit("1 2 3"); // буфер только для чтения фиксированного размера
    buf = lit.rdbuf();
    // istrstream не имеет метода pcount(), поэтому lit.pcount() не сработает
    std::cout << "Входной pcount() = " << buf->pcount() << '\n';
}

Вывод:

Размер вывода равен 11 и он содержит "Test: 1.23"
1.23
Входной pcount() = 0

Смотрите также

получает количество записанных символов
(публичная функция-член std::strstream )
получает количество записанных символов
(публичная функция-член std::ostrstream )