# std::strstreambuf::pcount

< cpp‎ | io‎ | strstreambuf

int pcount() const; |  |

返回写入输出序列的字符数。

若放置区的下一位置指针（ std::streambuf::pptr() ）为空指针，则返回零。

否则，返回放置区中的下一位置指针减放置区中的起始指针，即 pptr() - pbase() 。

### 参数

（无）

### 返回值

写入放置区的字符数。

### 示例

    #include <strstream>
    #include <iostream>

    int main()
    {
        std::strstream dyn; // 动态分配的输出缓冲区
        dyn << "Test: " << 1.23 << std::ends;
        std::strstreambuf* buf = dyn.rdbuf();
        std::cout << "The size of the output is "
                  << buf->pcount() // or just buf.pcount()
                  << " and it holds \"" << dyn.str() << "\"\n";
        dyn.freeze(false); // 在动态流上调用 .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 << "Input-only pcount() = " << buf->pcount() << '\n';
    }

输出：

    The size of the output is 11 and it holds "Test: 1.23"
    1.23
    Input-only pcount() = 0

### 参阅

pcount | 获得写入的字符数 (`std::strstream` 的公开成员函数)
pcount | 获得写入的字符数 (`std::ostrstream` 的公开成员函数)