Skip to content

Latest commit

 

History

History
61 lines (49 loc) · 1.73 KB

File metadata and controls

61 lines (49 loc) · 1.73 KB

readsome

  • istream[meta header]
  • std[meta namespace]
  • basic_istream[meta class]
  • function[meta id-type]
streamsize readsome(char_type* s, streamsize n);

概要

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

効果

  1. sentryオブジェクトを構築する。
  2. good()メンバ関数を呼び出してfalseであったら、ローカルエラー状態にfailbitを設定して終了する。
  3. rdbuf()->in_avail()の値により以下のように処理を進める。
    • -1ならローカルエラー状態にeofbitを設定する。
    • 0なら何もしない。
    • 1以上ならmin(rdbuf()->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;
}
  • readsome[color ff0000]

出力

12345678

実装例

TBD

バージョン

言語

  • C++98

参照