std::basic_filebuf<CharT,Traits>::showmanyc
来自 cppreference.cn
< cpp | io | basic filebuf
protected: virtual std::streamsize showmanyc() |
(可选的) | |
如果已实现,则返回文件中剩余可读取的字符数。
目录 |
[编辑] 返回值
可从文件中读取的字符数,如果已到达文件末尾,则返回 -1 。
[编辑] 注释
此函数是可选的。如果未实现,此函数返回 0(因为会调用基类版本 std::basic_streambuf::showmanyc)。
无论是否实现,通常在获取区域为空时,std::basic_streambuf::in_avail 会调用此函数。
此函数的名称代表 “stream: how many characters?”,因此发音为 “S how many C”,而不是 “show many C”。
[编辑] 示例
一个实现测试,用于查看 showmanyc()
是否为 std::filebuf 实现。
运行此代码
#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'; }
可能的输出
showmanyc() returns 254
[编辑] 参见
获取获取区域中立即可用的字符数 ( std::basic_streambuf<CharT,Traits> 的公共成员函数) | |
提取已有的可用字符块 ( std::basic_istream<CharT,Traits> 的公共成员函数) |