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

履歴 編集

function template
<string>

std::operator>>

namespace std {
  template <class CharT, class Traits, class Allocator>
  std::basic_istream<CharT, Traits>&
    operator>>(std::basic_istream<CharT, Traits>& is,
               basic_string<CharT, Traits, Allocator>& str);
}

概要

文字列をストリームから入力する。空白文字が現れるまで、あるいはsetwマニピュレータで指定された数までの文字列を入力する。

この関数は、書式化入力関数(basic_istreamを参照)として作用する。

効果

  1. basic_istream<>::sentryオブジェクトを構築する。sentryオブジェクトが失敗を示した場合、何もしない。
  2. str.erase()を呼び出す。
  3. 以下のいずれかを満たすまで、文字を入力してstr.append(1, c)と等価な方法で文字列に追加する。なお、cは入力した文字を表す。
    • 最大文字数まで書き込んだ。最大文字数は次のいずれかである。
      • is.width()0以上ならその値とする。
      • さもなくば、str.max_size()とする。
    • EOFに達した。
    • 空白文字に達した。空白文字の判定にはストリームに設定されているロケールが考慮される。
  4. is.width(0)を呼び出す。

strに1文字も入力が行われなかった場合、is.setstate(ios_base::failbit)が呼び出される。

戻り値

  • 仮引数is

#include <iostream>
#include <string>

int main() {
  std::string a, b;
  if (std::cin >> a >> b) {
    std::cout << a << std::endl;
    std::cout << b << std::endl;
  }
}

入力

Apple Banana

出力

Apple
Banana

参照