输入输出时遇到的一个问题,请教各位大虾

x5ngchen 2011-11-29 09:39:16
源程序如下:
#include <iostream>
using namespace std;

int main()
{
int select;
cin>>select;
cout<<select<<endl;
cin>>select;
cout<<select<<endl;

system("pause");
return 0;
}
第一次尝试:输入select时,我输入1,输出1,再次输入时输入'a',select值没有改变,仍输出1
第二次尝试:输入select时,输入'a',输出-858993460,此时程序没让再次输入,而是直接输出-858993460

请教各位大虾:既然第二次尝试的时候,输入a,自动转换成了-858993460,第一次尝试输入a的时候为什么没有自动转化,而是仍旧保留1.第二次尝试的时候为什么没有允许第二次输入,而是直接就输出了。
...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
if( cin>>select )
{
cout<<select<<endl;
}
chen20052011 2011-11-29
  • 打赏
  • 举报
回复
是因为没有初始化啊
int select;
输入“a”相当于没有初始化直接输出了
而第一次输入1已经初始化了,输入a不能赋值还是等于1啊,
你初始化下
int select = 3;
第一次输入’a‘结果就是3了
天云 2011-11-29
  • 打赏
  • 举报
回复
请教各位大虾:既然第二次尝试的时候,输入a,自动转换成了-858993460,第一次尝试输入a的时候为什么没有自动转化,而是仍旧保留1.第二次尝试的时候为什么没有允许第二次输入,而是直接就输出了。

第二次输入的a不是自动转换的,是输入操作异常,但是对于局部变量编译器会在程序没赋值的情况下对其赋一随机值;第一次的select在输入a后输入异常,接着输出前一个输入值1.

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧