std::basic_filebuf<CharT,Traits>::showmanyc (3) - Linux Manuals

std::basic_filebuf<CharT,Traits>::showmanyc: std::basic_filebuf<CharT,Traits>::showmanyc

NAME

std::basic_filebuf<CharT,Traits>::showmanyc - std::basic_filebuf<CharT,Traits>::showmanyc

Synopsis


protected:
virtual std::streamsize showmanyc()


If implemented, returns the number of characters left to read from the file.

Parameters


(none)

Return value


The number of characters available for reading from the file, or -1 if the end of file was reached.

Notes


This function is optional. If not implemented, this function returns 0 (since the base class version std::basic_streambuf::showmanyc gets called)
Whether implemented or not, this function is normally called by std::basic_streambuf::in_avail if the get area is empty.
The name of this function stands for "stream: how many characters?", so it is pronounced "S how many C", rather than "show many C"

Example


implementation test to see if showmanyc() is implemented for filebuf
// Run this code


  #include <fstream>
  #include <iostream>


  struct mybuf : std::filebuf
  {
       using std::filebuf::showmanyc;
  };


  int main()
  {
      mybuf fin;
      fin.open("main.cpp", std::ios_base::in);
      std::cout << "showmanyc() returns " << fin.showmanyc() << '\n';
  }

Possible output:


  showmanyc() returns 267

See also


         obtains the number of characters immediately available in the get area
in_avail (public member function of std::basic_streambuf<CharT,Traits>)
         extracts already available blocks of characters
readsome (public member function of std::basic_istream<CharT,Traits>)