• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <istream>

    std::basic_istream::readsome

    streamsize readsome(char_type* s, streamsize n);
    

    概要

    (非書式化入力関数)ストリームから指定した数の文字を入力する。 ただし、その時点でストリームバッファに読み込まれているデータのみを読み取り対象とし、指定サイズちょうどのデータが得られる保証されない点がreadと異なる。

    効果

    1. sentryオブジェクトを構築する。
    2. good()メンバ関数を呼び出してfalseであったら、setstate(failbit)を呼び出して終了する。
    3. rebuf()->in_avail()の値により以下のように処理を進める。
      • -1ならsetstate(eofbit)を呼び出す。
      • 0なら何もしない。
      • 1以上ならmin(rebuf()->in_avail(), n)だけの文字を読み込む(nは仮引数)。

    戻り値

    sに読み込まれた文字数。

    #include <iostream>
    #include <string>
    #include <sstream>
    
    std::string get_word(std::istream& is) {
      char s[8];
      auto size = is.readsome(s, sizeof s);
      return std::string(s, size);
    }
    
    int main() {
      std::istringstream is("123456789");
      std::cout << get_word(is) << std::endl;
    }
    

    出力

    12345678
    

    実装例

    TBD

    バージョン

    言語

    • C++98

    参照