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); // 在动态 strstream 上调用 .str() 后
    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 的公开成员函数)