读书人

关于cin的有关问题

发布时间: 2012-02-21 16:26:23 作者: rapoo

关于cin的问题
int i;
cin>>i;//输入a
cout<<i;//原以为输出97
结果-858993460
似乎没有接受输入
输入整数时输出正常
请问该如何解释?cin有什么要求吗?


[解决办法]
void main()
{
char i;
cin>>i;//输入a
cout <<static_cast<int>(i);//输出97

}
就可以了
[解决办法]
cin要求类型匹配。不对的类型是读不进去的。你试试输入别的字符也是打印那个值。

cin>>*((char*)&i);这样可以打印出97。
[解决办法]
cin与scanf一样,将输入存储到变量中前,有一个分析过程。
如果输入与内部数据类型是不一致的,就不会对变量进行改变。

所以你的-858993460是i声明时就已经保存在i中的随机值。
[解决办法]
输入的是字符a的话, cin不会读入它, 因此,a仍然保留在了输入缓冲区之中
cin>>*((char*)&i);这样的话就只能输入字符了

读书人网 >C++

热点推荐