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
参阅
获得写入的字符数 ( std::strstream 的公开成员函数) | |
获得写入的字符数 ( std::ostrstream 的公开成员函数) |