C++简单问题

[复制链接]
查看11 | 回复3 | 2010-10-20 15:56:03 | 显示全部楼层 |阅读模式
容器读入程序如下
vector ivec1,ivec2;
int ival;
cout > ival)
ivec1.push_back(ival);
cin.clear();
cout > ival)
ivec2.push_back(ival);
在第一组ivec1读入1 2 3 4 5 后按 ctrl+z结束输入,用cin.clear()恢复cin,但是第二组ivec2无法读入数字,程序直接跳过第二个while,请问是怎么回事?

回复

使用道具 举报

千问 | 2010-10-20 15:56:03 | 显示全部楼层
cin.clear()是将流的状态值设为有效,不是将流的状态设为有效。需要使用cin.good()使流处于有效状态。
回复

使用道具 举报

千问 | 2010-10-20 15:56:03 | 显示全部楼层
很久没搞过控制台下的键盘输入了..
回复

使用道具 举报

千问 | 2010-10-20 15:56:03 | 显示全部楼层
ctrl+z,发出stop信号,系统将程序直接退出了,没有按照正常的程序流程退出。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836