首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cout<<cin;该怎么处理

2012-04-14 
coutcin今天不小心把 cout 变量写成了cout cin执行的时候才发现于是省略其他的东西改为#includ

cout<<cin;
今天不小心把 "   cout < <变量   "写成了cout> > cin
执行的时候才发现
于是省略其他的东西改为
#include   <iostream>
using   namespace   std;

int   mian()
{
        cout < <cin;
}

输出的是一个地址,我想问一下这个地址是输入流的地址还是cin指令所在的地址

[解决办法]
cout并不知道如何输出一个basic_istream的对象,于是编译器只好去检查有没有标准转换或用户自定义的转换可用。basic_istream对象跟一般的可输出的类型之间也不存在什么标准转换,但重载的operator void*却可以通过用户自定义转换返回一个void指针,而cout是知道如果输出void指针的。

本来basic_istream的operator void*()是用来输出返回流的内部状态的,之所以没用operator bool()是因为bool太容易产生其它让人莫名其妙的后果,比如隐式转换成整数,所以,一旦采用operator bool()的话,像这种:
int i = cin;
都可以被莫名其妙地通过编译。

热点排行