[英]Why does std::operator>>(istream&, char&) extract whitespace?
[英]How does istream::operator>>( const char& ) as no such function is implemented?
查看istream
文档,您会看到没有函数istream &operator>>( char& )
,但是如果您编译并运行下面的代码,它将按预期工作。
#include<iostream>
int main( ) {
char c;
std::cin >> c;
std::cout << c << std::endl;
return( 0 );
}
给定cin
是类 istream 的对象,当std::cin >> c;
时调用operator>>
std::cin >> c;
被执行?
operator>>
也被实现为非成员函数。
istream& 运算符>> (istream& is, char& c)
如前所述这里, operator>>
也实现为CIN的非成员函数。
非成员函数:
istream& operator>>( istream& st, char& ch );
总是有标准在第 27.7.2.2.3节中明确说明:
27.7.2.2.3 basic_istream::operator>> [istream::extractors]
11/退货: in.
template<class charT, class traits> basic_istream<charT,traits>& operator>> (basic_istream<charT,traits>& in, charT& c); template<class traits> basic_istream<char,traits>& operator>> (basic_istream<char,traits>& in, unsigned char& c); template<class traits> basic_istream<char,traits>& operator>> (basic_istream<char,traits>& in, signed char& c);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.