std::strstreambuf::pcount
From cppreference.com
< cpp | io | strstreambuf
| int pcount() const; |
(C++98で非推奨) (C++26で削除) |
|
出力シーケンスに書き込まれた文字数を返します。
putエリアの次のポインタ (std::streambuf::pptr()) がヌルポインタの場合は、ゼロを返します。
それ以外の場合は、putエリアの次のポインタからputエリアの開始ポインタを引いた値を返します。つまり、pptr() - pbase()です。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
putエリアに書き込まれた文字数。
[編集] 例
このコードを実行
#include <iostream> #include <strstream> int main() { std::strstream dyn; // dynamically-allocated output buffer 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); // after calling .str() on a dynamic strstream char arr[10]; std::ostrstream user(arr, 10); // user-provided output buffer buf = user.rdbuf(); user << 1.23; // note: no std::ends std::cout.write(arr, buf->pcount()); // or just user.pcount() std::cout << '\n'; std::istrstream lit("1 2 3"); // read-only fixed-size buffer buf = lit.rdbuf(); // istrstream has no member pcount(), so lit.pcount() won't work 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のpublicメンバ関数) | |
| 書き込まれた文字数を取得します。 ( std::ostrstreamのpublicメンバ関数) |