最終更新日時:
が更新

履歴 編集

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

参照