std::strstreambuf::pcount (3) - Linux Manuals

std::strstreambuf::pcount: std::strstreambuf::pcount

NAME

std::strstreambuf::pcount - std::strstreambuf::pcount

Synopsis


int pcount() const;


Returns the number of characters written to the output sequence.
If the next pointer for the put area (std::streambuf::pptr()) is a null pointer, returns zero.
Otherwise, returns the next pointer in the put area minus the beginning pointer in the put area, that is pptr() - pbase()

Parameters


(none)

Return value


The number of characters written to the put area.

Example


// Run this code


  #include <strstream>
  #include <iostream>


  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';
  }

Output:


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

See also


       obtains the number of characters written
pcount (public member function of std::strstream)
       obtains the number of characters written
pcount (public member function of std::ostrstream)