新手求教,while循环问题

残玉 2012-03-25 11:19:29
代码如下:

int main()
{
int ival1;
vector<int> ivec1;

cout << "请为第一个vector对象输入整数元素:" << endl;

while(cin >> ival1)
ivec1.push_back(ival1);


int ival2;
vector<int> ivec2;

cout << "请为第二个vector对象输入整数元素:" << endl;

while(cin >> ival2) //直接跳过,没有执行循环
ivec2.push_back(ival2);

return 0;
}




为什么第二个循环没有执行?
我还在念书,条件有限,不能经常上网,但我会及时过来结帖的,希望各位帮帮我。(我很笨,各位不要鄙视我啊
...全文
190 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckcz123 2012-03-26
  • 打赏
  • 举报
回复
结束第一个循环后加上cin.clear()

。。。。

本人也是新手,才学习1个多月的c++......

残玉 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ctlg6969 的回复:]
结束第一个循环是使用“F6”功能键?如果是这样,应该是输入缓冲区没有及时刷新?
俺也是新手,以上是俺的推测
[/Quote]

同学,交个朋友吧。
残玉 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lanfeng_10 的回复:]
C/C++ code

int main()
{
int ival1;
vector<int> ivec1;

cout << "请为第一个vector对象输入整数元素:" << endl;

while(cin >> ival1) //你结束这个循环的时候流肯定是属于出错状态了。
ivec1.push_back(ival1);……
[/Quote]

感谢您的夸奖,我会努力学习的
残玉 2012-03-25
  • 打赏
  • 举报
回复
非常感谢楼上几位。因为我是自己学习C++的,身边又没有人学习这个,所以就上网来求助,可学校条件实在是。。。。不管怎么说,谢谢各位的帮助
羽飞 2012-03-25
  • 打赏
  • 举报
回复
在第一次while循环中清空一下stdin缓存试试
ctlg6969 2012-03-25
  • 打赏
  • 举报
回复
看到楼上的回帖了,原来俺推测基本正确哈
ctlg6969 2012-03-25
  • 打赏
  • 举报
回复
结束第一个循环是使用“F6”功能键?如果是这样,应该是输入缓冲区没有及时刷新?
俺也是新手,以上是俺的推测
羽飞 2012-03-25
  • 打赏
  • 举报
回复
可能是stdin直接从缓存中读取到了终止输入的字符,所以直接退出了
蓝枫10 2012-03-25
  • 打赏
  • 举报
回复

int main()
{
int ival1;
vector<int> ivec1;

cout << "请为第一个vector对象输入整数元素:" << endl;

while(cin >> ival1) //你结束这个循环的时候流肯定是属于出错状态了。
ivec1.push_back(ival1);
//所以你可以在这里添加cin.clear();恢复流到正常状态。后面就可以读取了

int ival2;
vector<int> ivec2;

cout << "请为第二个vector对象输入整数元素:" << endl;

while(cin >> ival2) //直接跳过,没有执行循环
ivec2.push_back(ival2);

return 0;
}

很赞赏你的学习态度···
残玉 2012-03-25
  • 打赏
  • 举报
回复
怎么都没人的么?还是我发帖的时间不对?求帮助啊,别沉了
st_laohu 2012-03-25
  • 打赏
  • 举报
回复
俺也是新手 不懂,但是我帮顶 哈哈

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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