std::strstreambuf:: pcount
From cppreference.net
<
cpp
|
io
|
strstreambuf
|
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
的公开成员函数)
|