std::basic_filebuf::showmanyc - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::basic_filebuf::showmanyc

From cppreference.com
< cpp‎ | io‎ | basic filebuf

protected: virtual std::streamsize showmanyc() |  |

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

### [edit] Parameters

(none)

### [edit] Return value

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

### [edit] 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"

### [edit] 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

### [edit] See also

in_avail | obtains the number of characters immediately available in the get area (public member function of `std::basic_streambuf`) [edit]
readsome | extracts already available blocks of characters (public member function of `std::basic_istream`) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_filebuf/showmanyc&oldid=76905"