名前空間
変種
操作

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

提供: cppreference.com
< cpp‎ | io‎ | basic filebuf
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
protected:
virtual std::streamsize showmanyc()

実装されている場合は、ファイルから読み込む残りの文字数を返します。

目次

[編集] 引数

(なし)

[編集] 戻り値

ファイルからの読み込み用に利用可能な文字数、またはファイル終端に達した場合は -1

[編集] ノート

この関数はオプショナルです。 実装されていない場合、この関数は (基底クラスのバージョンの std::basic_streambuf::showmanyc が呼ばれるため) 0 を返します。

実装されているかどうかにかかわらず、通常、この関数は get 領域が空の場合に std::basic_streambuf::in_avail によって呼ばれます。

この関数名の由来は「stream: how many characters?」であり、そのため「show many C」ではなく「S how 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

[編集] 関連項目

get 領域内の直ちに利用可能な文字数を取得します
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
すでに利用可能な文字のブロックを抽出します
(std::basic_istream<CharT,Traits>のパブリックメンバ関数) [edit]