命名空间
变体
操作

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

来自 cppreference.com
< cpp‎ | io‎ | basic filebuf
 
 
 
 
protected:
virtual std::streamsize showmanyc()

如果实现,则返回从文件中读取的剩余字符数。

内容

[编辑] 参数

(无)

[编辑] 返回值

从文件中可读的字符数,或 -1 如果到达文件末尾。

[编辑] 注释

此函数是可选的。如果没有实现,此函数返回 0(因为基类版本 std::basic_streambuf::showmanyc 被调用)

无论是否实现,此函数通常由 std::basic_streambuf::in_avail 调用,如果获取区域为空。

此函数的名称代表“流:有多少字符?”,所以它的发音是“S how many C”,而不是“show many C”

[编辑] 示例

实现测试以查看是否为 filebuf 实现 showmanyc()

#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 267

[编辑] 参见

获取获取区域中立即可用的字符数
(std::basic_streambuf<CharT,Traits> 的公有成员函数) [编辑]
提取已经可用的字符块
(std::basic_istream<CharT,Traits> 的公有成员函数) [编辑]