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

关于cin的有关问题

2012-02-21 
关于cin的问题int icini//输入acouti//原以为输出97结果-858993460似乎没有接受输入输入整数时输出

关于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);这样的话就只能输入字符了

热点排行