目录

operator>>

描述 (Description)

它用于提取格式化输入。

应用于输入流的此运算符(>>)称为提取运算符 -

  • arithmetic types - 从流中按顺序提取和解析字符,将它们解释为正确类型值的表示形式,该值存储为val的值。 在内部,该函数通过首先构造一个sentry对象(noskipws设置为false)来访问输入序列。 然后(如果好),它调用num_get :: get(使用流的选定语言环境)来执行提取和解析操作,相应地调整内部状态标志。 最后,它会在返回之前摧毁哨兵对象。

  • stream buffers - 从流中提取尽可能多的字符,并将它们插入由sb指向的流缓冲区对象(如果有)控制的输出序列中,直到输入序列耗尽或函数无法插入到指向的对象中由某人

  • manipulators - 调用pf(* this),其中pf可能是操纵器。 操纵器是专门设计用于与此运算符一起使用时调用的功能。 此操作对输入序列没有影响,并且不提取任何字符(除非操纵器本身像ws一样)。

声明 (Declaration)

以下是std :: basic_istream :: operator >>的声明

C++98

arithmetic types (1)	
basic_istream& operator>> (bool& val);
basic_istream& operator>> (short& val);
basic_istream& operator>> (unsigned short& val);
basic_istream& operator>> (int& val);
basic_istream& operator>> (unsigned int& val);
basic_istream& operator>> (long& val);
basic_istream& operator>> (unsigned long& val);
basic_istream& operator>> (float& val);
basic_istream& operator>> (double& val);
basic_istream& operator>> (long double& val);
basic_istream& operator>> (void*& val);
stream buffers (2)	
basic_istream& operator>> (basic_streambuf<char_type,traits_type>* sb );
manipulators (3)	
basic_istream& operator>> (basic_istream& (*pf)(basic_istream&));
basic_istream& operator>> (
  basic_ios<char_type,traits_type>& (*pf)(basic_ios<char_type,traits_type>&));
basic_istream& operator>> (ios_base& (*pf)(ios_base&));

C++11

arithmetic types (1)	
basic_istream& operator>> (bool& val);
basic_istream& operator>> (short& val);
basic_istream& operator>> (unsigned short& val);
basic_istream& operator>> (int& val);
basic_istream& operator>> (unsigned int& val);
basic_istream& operator>> (long& val);
basic_istream& operator>> (unsigned long& val);
basic_istream& operator>> (long long& val);
basic_istream& operator>> (unsigned long long& val);
basic_istream& operator>> (float& val);
basic_istream& operator>> (double& val);
basic_istream& operator>> (long double& val);
basic_istream& operator>> (void*& val);
stream buffers (2)	
basic_istream& operator>> (basic_streambuf<char_type,traits_type>* sb );
manipulators (3)	
basic_istream& operator>> (basic_istream& (*pf)(basic_istream&));
basic_istream& operator>> (
  basic_ios<char_type,traits_type>& (*pf)(basic_ios<char_type,traits_type>&));
basic_istream& operator>> (ios_base& (*pf)(ios_base&));

参数 (Parameters)

  • val - 存储提取的字符所代表的值的对象。 请注意,此参数的类型(以及流的格式标志)会影响构成有效表示的内容。
  • sb - 指向basic_streambuf对象的指针,该对象在其受控输出序列上复制字符。

  • pf - 获取并返回流对象的函数。

返回值 (Return Value)

返回basic_istream对象(* this)。

异常 (Exceptions)

Basic guarantee - 如果抛出异常,则对象处于有效状态。

数据竞争 (Data races)

修改val或sb指向的对象。

例子 (Example)

在下面的示例中,对于std :: basic_istream :: operator >>

#include <iostream>     
int main () {
   int n;
   std::cout << "Enter a number: ";
   std::cin >> n;
   std::cout << "You have entered: " << n << '\n';
   std::cout << "Enter a hexadecimal number: ";
   std::cin >> std::hex >> n;         
   std::cout << "Its decimal equivalent is: " << n << '\n';
   return 0;
}

让我们编译并运行上面的程序,这将产生以下结果 -

Enter a number: 11
You have entered: 11
Enter a hexadecimal number: 5E
Its decimal equivalent is: 94
↑回到顶部↑
WIKI教程 @2018