<istream>
运算符
operator>>
从流中提取字符和字符串。
template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
basic_istream<Elem, Tr>& Istr,
Elem* str);
template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
basic_istream<Elem, Tr>& Istr,
Elem& Ch);
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr,
signed char* str);
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr,
signed char& Ch);
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr,
unsigned char* str);
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr,
unsigned char& Ch);
template <class Elem, class Tr, class Type>
basic_istream<Elem, Tr>& operator>>(
basic_istream<char, Tr>&& Istr,
Type& val);
参数
Ch
一个字符。
Istr
流。
str
一个字符串。
val
类型。
返回值
流
注解
basic_istream
类还定义多个提取运算符。 有关详细信息,请参阅 basic_istream::operator>>。
函数模板:
template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
basic_istream<Elem, Tr>& Istr, Elem* str);
提取多达 N - 1
个元素,并将其存储在以 str 开始的数组中。 如果 Istr.
width 大于零,则 N 为 Istr.width
;否则,它是可以声明的 Elem
最大数组的大小。 此函数始终在所存储的任何提取元素后存储值 Elem()
。 遇到文件末尾、值为 Elem(0)
的字符(不会被提取)或会被 ws 放弃的任何元素(不会被提取)时,提取会提前结束。 如果此函数没有提取任何元素,则会调用 Istr.
setstate
(failbit)
。 在任何情况下,它均会调用 Istr.width(0)
并返回 Istr。
安全说明 正在从输入流提取的以 Null 结尾的字符串不得超过目标缓冲区 str 的大小。 有关详细信息,请参阅 避免缓冲区溢出。
函数模板:
template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
basic_istream<Elem, Tr>& Istr, Elem& Ch);
提取一个元素(如果可能),并将其存储在 Ch 中。 否则,会调用 is.
setstate
(failbit)
。 不管怎样,它均将返回 Istr。
函数模板:
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr, signed char* str);
返回 Istr >> ( char * ) str
。
函数模板:
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr, signed char& Ch);
返回 Istr >> ( char& ) Ch
。
函数模板:
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr, unsigned char* str);
返回 Istr >> ( char * ) str
。
函数模板:
template <class Tr>
basic_istream<char, Tr>& operator>>(
basic_istream<char, Tr>& Istr, unsigned char& Ch);
返回 Istr >> ( char& ) Ch
。
函数模板:
template <class Elem, class Tr, class Type>
basic_istream<Elem, Tr>& operator>>(
basic_istream<char, Tr>&& Istr,
Type& val);
返回 Istr >> val
(并将右值引用转换为进程中左值的 Istr
)。
示例
// istream_op_extract.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main( )
{
ws( cin );
char c[10];
cin.width( 9 );
cin >> c;
cout << c << endl;
}